周某人向Python出手了?跟我混让天下没有爬不了的视频!


周某人向Python出手了?跟我混让天下没有爬不了的视频!

犯我周某人者,有车无瓶

“打工是不可能打工的,这辈子都不可能打工的!”不知道还有多少人记得当年的广西南宁小伙窃车犯“周某人”,那时候“精神小伙”一词还没有流行起来,因为外形像极了古巴革命领导人和惊人的言论被戏谑为“窃格瓦拉”的周某人,可以说是不少人的“精神领袖”了。

当然向任何人学习都要有取舍,取其精华去其糟粕,周某人执着的精神和想单干的动力还是不错的,

今天我们就来分享一下,如何用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出手了?跟我混让天下没有爬不了的视频!

完整代码如下

import requests 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: f.write(video_data) print('完成')

结语

动态网页的爬取与静态网页的爬取是非常相似的,其中一个差异是不能直接确定url,而需从头部信息中去获取。本次案例中的网站,可以直接看到头部信息,但很多的视频网站的头部信息是无法查看的。需要其他一些手段。最后提醒大家爬虫程序规避网站经营者设置的反爬虫措施或者破解服务器防抓取措施,非法获取相关信息,情节严重的,有可能构成“非法获取计算机信息系统数据罪”。


周某人向Python出手了?跟我混让天下没有爬不了的视频!

2020年最新人工智能python教程和电子书

如果你看好人工智能产业,处于想学python或者找不到合适的入门教程,那么赶快来领取吧

获取方式:

1.转发此文+关注

2.私信小编关键词 “ 资料 ”,即可免费获取哦!

还不会私信的小伙伴,可以按照以下步骤操作:

1、打开头条,点击右下角“我的”

2、在个人界面点击“关注”,当然这需要你先关注小编

3、在关注中找到小编,点击小编的头像进入他的个人界面,随后点击“私信” 

4、随后进入私信发送界面,这样就可以愉快的私信聊天了;

周某人向Python出手了?跟我混让天下没有爬不了的视频!


周某人向Python出手了?跟我混让天下没有爬不了的视频!


分享到:


相關文章: