遇到自己喜欢的视频无法下载,python帮你解决


遇到自己喜欢的视频无法下载,python帮你解决

问题描述

python是一种非常好用的爬虫工具。对于大多数的爬虫小白来说,python是更加简洁,高效的代码。今天就用实际案例讲解如何爬取动态的网站视频。

环境配置:python3:爬虫库request、json模块,Pycharm

爬虫的一般思路:分析目标网页,确定url—发送请求,获取响应—解析数据—保存数据

爬取目标:方便看视频

解决方案

第一步:分析网页类型,获取爬虫参数

分析网页:通过查看网页源代码搜索当前网页的一段文字发现为空,说明网页为动态的网页。

获取参数:通过谷歌审查元素依次点击Network,XHR,Headers,找到需要的三个个头部信息use-agent,cookie,url以及headers参数。


遇到自己喜欢的视频无法下载,python帮你解决

遇到自己喜欢的视频无法下载,python帮你解决

遇到自己喜欢的视频无法下载,python帮你解决

遇到自己喜欢的视频无法下载,python帮你解决

第二步:模拟浏览器发送请求,获取响应数据

利用requests的get()向服务器发送请求

遇到自己喜欢的视频无法下载,python帮你解决

遇到自己喜欢的视频无法下载,python帮你解决

第三步:解析数据--json模块:把json字符串转换为python可交互的数据类型

转换数据:利用json进行转换,json是python的内置模块,json可以把json字符串转换为python可交互的数据类型。

获取数据:通过观察,title是视频名,url是视频地址,提取这两个数据,并再次访问获得的url,得到视频数据。

遇到自己喜欢的视频无法下载,python帮你解决

遇到自己喜欢的视频无法下载,python帮你解决

遇到自己喜欢的视频无法下载,python帮你解决

遇到自己喜欢的视频无法下载,python帮你解决

第四步:保存数据,保存在目标文件夹中

创建文件夹,写入获取的视频数据。

遇到自己喜欢的视频无法下载,python帮你解决


遇到自己喜欢的视频无法下载,python帮你解决

代码如下

<code>import json
url = 'https://haokan.baidu.com/videoui/api/videorec?tab=gaoxiao&act=pcFeed&pd=pc&num=20&shuaxin_id=1584866887932'
headers = {'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',
'cookie': 'BAIDUID = 74DF3564617B2C9FA9D0468C96EA2D5B: FG = 1;BIDUPSID = 74DF3564617B2C9FA9D0468C96EA2D5B;PSTM = 1575894957;BDRCVFR[TfzreFuSob] = mk3SLVN4HKm;delPer = 0;PSINO = 6;H_PS_PSSID =;BDORZ = FFFB88E999055A3F8A630C64834BD6D0;BDSFRCVID = OV8sJeCCxG3HHcRuJgPnSaVvNIfB4Z1 - g_EP3J;H_BDCLCKID_SF = tR333R7oKRu_HRjYbb__ - P4DHUjHfRO2X5REVh7CfPOkeqOJ2Mt5yMkS0loZKhOXLK6pLqrY5q_MoCDzbpnp05tpexbH55uetn - f_U5;PC_TAB_LOG = haokan_website_page;Hm_lvt_4aadd610dfd2f5972f1efee2653a2bc5 = 1584866867;Hm_lpvt_4aadd610dfd2f5972f1efee2653a2bc5 = 1584866869;reptileData = % 7B % 22data % 22 % 3A % 2242da399b6855dc02a8c72001523e8685c0ec37b2f26178d68783bd941cca8e26e937dbe59953fb090211f372d6eb955dc20beb8396b045e5df4d725d5fedac7aaa415293534710428b39a3ce5851c795051c61beacdb88b1de6226323caf92f6a0c55a67f60dc0e50896f95dc05d54fa4803a75c5e3ba3751015d7b13e253544 % 22 % 2C % 22key_id % 22 % 3A % 2230 % 22 % 2C % 22sign % 22 % 3A % 22fd3d5c98 % 22 % 7D '}

respons = requests.get(url,headers = headers)
text = respons.text
#print(respons.text)

data = json.loads(text)#字典
#print(data)
list1=data['data']['response']['videos']
#print(list1)

for id in list1:
print(id)
video_title = id['title']
video_url = id['play_url']
print(video_title,video_url)
print('下载')
video_data = requests.get(video_url,headers = headers).content

~~~with open('video\\\\' + video_title,'wb') as f:/<code>


结语

最后提醒大家爬虫程序规避网站经营者设置的反爬虫措施或者破解服务器防抓取措施,非法获取相关信息,情节严重的,有可能构成“非法获取计算机信息系统数据罪”。

如果想了解更多关于python的应用,可以私信我,不管你是零基础还是有基础都可以免费获取到自己相对应的学习礼包!包括Python软件工具和2019最新入门到实战教程,(http://t.cn/A6Zvjdun)复制到浏览器打开!



分享到:


相關文章: