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

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

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

  • 爬取图片:抓取王者荣耀英雄列表的爬虫笔记(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. ADAS实际已涵盖20多种功能
  2. P3870 [TJOI2009]开关 线段树 异或
  3. POJ3450 Corporate Identity —— 后缀数组 最长公共子序列
  4. SAP WebIDE:how to enable context API reference
  5. Distributed Representations of Sentences and Documents
  6. 靠谱测试人员需具备解决问题能力
  7. Java复习之网络编程
  8. mysql 高并发 卡死,高并发中的卡死状态 -HashMap
  9. GMA Round 1 向量计算
  10. 易语言批量替换html,易语言实现批量文本替换操作的代码
  11. Linux安装Wiznote为知笔记的方法
  12. vue导出Excel图片
  13. 一阶惯性环节如何实现跟踪性能与滤波性能共存(一)
  14. 移动互联网(一)短信和彩信等接口开发封装
  15. win7文件夹共享 服务器,windows7共享文件夹怎么设置
  16. linux+新浪行情接口,新浪天气API接口
  17. 迷你csgo饰品租赁系统
  18. 苹果receipt例子
  19. 高效文件管理-Git管理个人文件指南
  20. 2021最新版IDEA安装(最新版可和谐)

热门文章

  1. js实现echarts桑基图缩放与拖动
  2. 拯救剧荒, 七部职场进阶的电影了解一下
  3. Dell G7 7588 双硬盘 UEFI启动模式 安装Ubuntu18.04双系统(已有Win10系统)
  4. 到考试周了......
  5. labview2019百度网盘安装(内附教程)
  6. git配置多项目账号密码
  7. 老手如何远离职业误区
  8. selenium之 chromedriver与chrome版本映射表_趣说Python爬虫07--Selenium的基本语法
  9. Docker新手宝典(必备)
  10. i9 9900k和i9 9900kf性能有没有区别 i9 9900k和i9 9900kf哪个玩游戏好