网络爬虫,听起来很神秘,其实也不过如此,简单来说,只要网站开放了端口即用户能访问这个网站,那么无论这个网站的反爬机制做的有多么好,只要你的技术够,总会有机会破解它。

换句话说,不是你的网站很安全,而是你的信息没有价值。我前几天无意中找到了别样网,选择这个网站的原因是这个网站里有很多视频素材,这是很少有的。

一般来说,只要网站上有的东西,都能抓取下来,就看这东西有没有价值罢了。大家可以翻阅我以前的文章:

  • 爬取图片:抓取王者荣耀英雄列表的爬虫笔记(python+requests)
  • 爬取文字:抓取中国天气网当前时段所有城市的天气数据(python+xpath)
  • 模拟登陆:使用python登陆某学校内网(操控浏览器进行登陆操作)
  • 群发邮件:爬取某新闻网站的新闻并实现自动群发邮件的功能(python3+SMTP)

当然,我目前所爬取的都是开放的服务型网站,不涉及隐私信息,这里我想说的是:

每一种新兴技术就好比是一把刀,刀本身没有错,关键看用刀的人是谁,用刀的目的是什么。

学习爬虫技术能让我们清楚网络爬虫的运行机制,以此来提高大家的安全意识,从另一方面来说,通过学习爬虫技术,能提高我们对python的学习兴趣。

下面展示一下最终效果:

使用爬虫,几十个视频分分钟下载完成,顺带自动命名,是不是很方便?

如果手动下载,我们还需要各种登陆,重复各种操作,十分钟都不一定能解决,况且如果要下载的视频很多,岂不是很麻烦?

这就是爬虫的优势所在!话不多说,下面我们来讲讲具体方法:

我这里使用的是谷歌浏览器,按住F12,或者右键进入检查,便可打开这一界面,因为我们需要的东西不在HTML的代码里(如果在,我们可以用xpath):

所以我们找到Network这个选项:

按住Ctrl+R刷新界面,可以看到下面有很多栏,这是网页返回的数据,我们需要的视频就在这里面,往下翻翻:

可以看到有很多.MP4的后缀,我想这应该就是我们想要的东西,点击进去看一下:

看这里的url地址,我们复制一下,用浏览器打开:

可以看到,确实是一个视频,而且这个视频是我们想要的,但是,光有一个视频是不够的,既然是批量下载,肯定要找到其他存放这些地址的列表,于是我们再找找看:

我们发现这个20002出现了很多次,我们分别点进去看一下,可以发现这有一个共同点,所有的20002里面都是有数据的,但是,里面的数据有限,看来也不是这一条数据,接着再往下找:

好像快要接近了,我们看这里面有很多数据,打开来看一下:

很好,里面有我们想要的东西,我们在headers里找到他的url地址,并使用浏览器打开它:

出现异常了,原因是这里的请求需要携带参数,我们在GitHub找到一个解析工具:

https://curl.trillworks.com/

回到刚刚的网页:

复制cURL并粘贴到刚刚curl command里:

把右边的python request全部复制到python编辑器里:

import requestscookies = {'BAIDU_SSP_lcr': 'https://www.baidu.com/link?url=kzwk2tY6VdLzGcc1Nfo9AWYgrzw-jxD1wVstT4gKkku&wd=&eqid=90bb793e00089362000000065e43d96c','_dg_playback.7b6028a56aac520d.ce42': '1','_dg_abtestInfo.7b6028a56aac520d.ce42': '1','_dg_check.7b6028a56aac520d.ce42': '-1','_dg_antiBotFlag.7b6028a56aac520d.ce42': '1','_dg_antiBotInfo.7b6028a56aac520d.ce42': '10%7C%7C%7C3600','SESSION': 'OTIyZGE2ZTgtMjM0Yi00NmZjLWEyM2MtMmJiYTVhMzEwZWJj','_dg_id.7b6028a56aac520d.ce42': 'bdbb5697b510c5bc%7C%7C%7C1581504892%7C%7C%7C9%7C%7C%7C1581509404%7C%7C%7C1581509342%7C%7C%7C%7C%7C%7C53b348475c9a517a%7C%7C%7C%7C%7C%7Chttps%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Dkzwk2tY6VdLzGcc1Nfo9AWYgrzw-jxD1wVstT4gKkku%26wd%3D%26eqid%3D90bb793e00089362000000065e43d96c%7C%7C%7C1%7C%7C%7Cundefined',
}headers = {'Connection': 'keep-alive','Accept': 'application/json','Sec-Fetch-Dest': 'empty','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36','Content-Type': 'application/json','Origin': 'https://www.ssyer.com','Sec-Fetch-Site': 'same-origin','Sec-Fetch-Mode': 'cors','Accept-Language': 'zh-CN,zh;q=0.9',
}data = '{"cateId":2,"order":2,"recommendType":1,"page":{"showCount":20,"currentPage":2}}'response = requests.post('https://www.ssyer.com/apis/20001', headers=headers, cookies=cookies, data=data)
print(response)


200表示请求成功!我们在这里解析一下:

在response的后面加上.text:

response = requests.post('https://www.ssyer.com/apis/20001', headers=headers, cookies=cookies, data=data).text

可以看出,我们想要的东西就在里面,只要提取出来就可以了:

response = requests.post('https://www.ssyer.com/apis/20001', headers=headers, cookies=cookies, data=data)
json_datas = response.json()
json_data = json_datas['data']

这里我们把下载好的视频存到一个名为"20200213video"的文件夹里:

video_path = '20200213video'
if not os.path.exists(video_path):os.mkdir(video_path)

接下来用一个循环,边提取边下载:

for item in range(len(json_data)):print(json_data[item]['video'])print("正在下载第%s个视频"%(item+1))file_path = video_path+'/'+ '%s'%(item+1) +'.mp4'urlretrieve(json_data[item]['video'],file_path,cbk)

简单讲讲最后一句里的urlretrieve(),这是负责下载文件的函数,括号左边是下载地址,中间是保存的地址,第三个是检查下载进度:

def cbk(a,b,c):'''回调函数a:已经下载的数据块b:数据块的大小c:远程文件的大小'''per=100.0*a*b/cif per>100:per=100print('%.2f%%' % per)


但是下载一个视频也就几秒的事,看上去显得很多余,所以这一步也可以不要:

我们可以播放一下视频:

确认过眼神,是可以播放的视频。今天的内容到这里就结束了,大家如果有问题的话,欢迎大家在评论区留言!

给小白的python爬虫入门之批量爬取别样网的视频素材相关推荐

  1. Python爬虫学习,批量爬取下载抖音视频

    这篇文章主要为大家详细介绍了python批量爬取下载抖音视频,具有一定的参考价值,感兴趣的小伙 项目源码展示 ''' 注:如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料, ...

  2. Python爬虫入门 | 7 分类爬取豆瓣电影,解决动态加载问题

      比如我们今天的案例,豆瓣电影分类页面.根本没有什么翻页,需要点击"加载更多"新的电影信息,前面的黑科技瞬间被秒--   又比如知乎关注的人列表页面:   我复制了其中两个人昵称 ...

  3. python爬虫爬取图片代码_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...

    Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...

  4. python爬虫快速下载图片_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...

    Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...

  5. Python爬虫入门——2. 2爬取酷狗音乐top1-500歌曲信息

    有了第一个程序的基础,我们现在来爬取酷狗音乐top500的歌曲信息.连接http://www.kugou.com/yy/rank/home/1-8888.html 我们第一个程序只爬取了一个页面的数据 ...

  6. Python爬虫实战+Scrapy框架 爬取当当网图书信息

    1.环境准备 1.在python虚拟环境终端使用 pip install scrapy下载scrapy依赖库 2.使用scrapy startproject book创建scrapy心目工程 3.使用 ...

  7. 小白Python爬虫入门实例1——爬取中国最好大学排名

    中国大学慕课python网络爬虫与信息提取--定向爬虫"中国最好大学排名信息爬取" 由于课程中老师给的案例有些许瑕疵,加之至今该网页的首页已经更新,原网址已不存在,因此笔者在老师给 ...

  8. python爬虫教程网-python爬虫入门10分钟爬取一个网站

    一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...

  9. python爬虫入门教程:爬取网页图片

    在现在这个信息爆炸的时代,要想高效的获取数据,爬虫是非常好用的.而用python做爬虫也十分简单方便,下面通过一个简单的小爬虫程序来看一看写爬虫的基本过程: 准备工作 语言:python IDE:py ...

最新文章

  1. UITableView学习笔记
  2. WIN10 右键 powershell 修改
  3. 深度学习笔记:利用numpy从零搭建一个神经网络
  4. IOS15瀑布流的使用
  5. javascript如何阻止事件冒泡和默认行为
  6. 高度为5的3阶b树含有的关键字个数_第15期:索引设计(索引组织方式 B+ 树)
  7. mysql权限系统的工作原理_Mysql权限系统工作原理
  8. Redmi K40S难产:缺芯是根本原因 明年或有望缓解
  9. 1 恢复MySQL误删数据
  10. ffmpeg:将webm无损转为mp4
  11. 使用Swagger生成 API 文档(go语言示例)
  12. Android 利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
  13. 校企同游快乐工作——湖南工程职院美和易思教师开展素质拓展活动
  14. Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知
  15. Excel如何统计同一单元格内姓名个数
  16. 诗人海子与互联网的辩证法
  17. Manjaro安装有道词典,启动报错解决
  18. Wu-Manber算法
  19. MySQL InnoDB Cluster部署
  20. PMP之项目风险管理---实施定量风险分析

热门文章

  1. python 数据判断利润表计算
  2. 「PCB设计」刚挠结合设计中的替代结构
  3. Py修行路 Pandas 模块基本用法
  4. 3种调整matplotlib图片大小的方法
  5. 2020三大运营商合并成一家_移动、联通、电信三大运营商未来会合并成一家吗?...
  6. drcom-client使用指南
  7. 通过LiveNVR拉取海康、大华、华为、天地伟业等各种监控视频RTSP流地址做H5 web播放...
  8. 荣耀v30pro鸿蒙5g,荣耀V30Pro“5G标杆,不止于快”
  9. AutoJs学习-实现QQ语音红包
  10. win10输入法问题,已禁止IME 问题解决