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...')

 

posted @ 2023-03-22 08:00  Lauriee  阅读(13)  评论(0编辑  收藏  举报  来源