Python:爬取全网Video
先上爬取1-10页的效果(获取全网即更改页数即可)
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
思路:
(1)访问网站
(2)获取响应数据
(3)解析数据:
a:转换数据类型
b:数据解析
(4)遍历列表,find网址
(5)下载到文件夹
import requests
import json
import re
def change_title(title):
pattern = re.compile(r"[\/\\\:\*\?\"\<\>\|]")
new_title = re.sub(pattern,"_",title)
return new_title
for page in range(1,10):#爬取1~n页
print('正在抓取第{}页数据'.format(page))
base_url = 'https://v.6.cn/minivideo/getlist.php?act=recommend&page={}&pagesize=20'.format(str(page))
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"
}
response = requests.get(base_url,headers=headers)
response_data = response.text
#print(response_data)
dict_data = json.loads(response_data)
#print(dict_data)
data_list = dict_data['content']['list']#获取到列表
#print(data_list)
for data in data_list:
#print(data)
video_title = data['title'] + '.mp4'
video_url = data['playurl']
new_title = change_title(video_title)
#print(video_title,video_url)
print('正在下载...'+video_title)
video_data = requests.get(video_url,headers=headers).content
with open('video\\' + new_title,'wb') as f:
f.write(video_data)
print('下载完成\n')
print('网站视频已经全部下载完毕 ending...')