1.找到目标网址
2.按 F12 进入开发者模式,找到Network , 选择 XHR , 刷新页面
3.根据上图找到url和headers内容。然后下面直接上代码
# 爬虫的一般思路:
# 1、确定爬取url路径,headers参数
# 2、发送请求:requests 模拟浏览器发送请求,获取响应数据
# 3、解析数据:json模块:把json字符串转换成python可交互的数据类型字典
# 4、保存数据:将下载的数据保存在目标文件夹中
import requests
import json
def spider():
for page in range(1,5): # 1~5 页,测试用。
# 1、确定爬取url路径,headers参数
url = 'https://v.6.cn/minivideo/getlist.php'
headers = {
'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
'cookie' : 'shrek_reft=21%7C157770825295128; _uuid=8a6029521d2956ea; roomCookie=e30%3D; shrek_uuid=B3157770825240414; _LiveGuestUser=1575067825%7C%E6%B8%B8%E5%AE%A2niuhta'
}
params = {
'act' : 'recommend',
'page' : str(page),
'pagesize' : '20'
}
# 2、发送请求:requests 模拟浏览器发送请求,获取响应数据
response = requests.get(url, headers=headers, params=params)
data = response.text
# print(data)
# 3、解析数据:json模块:把json字符串转换成python可交互的数据类型字典
dict_data = json.loads(data)
# print(dict_data)
data_list = dict_data['content']['list'] # 拿到playurl数据
print(data_list)
# 遍历列表下的字典
for data_list in data_list:
video_title = data_list['title'] + '.mp4'
playurl = data_list['playurl']
print(video_title, playurl)
print('正在下载:', video_title)
video_data = requests.get(playurl, headers).content
# 4、保存数据:将下载的数据保存在目标文件夹中,需要在项目下新建一个video文件夹,负责报错
with open('video\\' + video_title, 'wb') as f:
f.write(video_data)
print('下载完成。。。\n')
if __name__ == '__main__':
spider()
4.最后上个结果图
ps:存在一个问题,下载比较慢,也没有说被屏蔽中断,就是下载的很慢,难道是我网不好?可能因电脑而异吧。。。