python爬虫-用爬虫下载腾讯视频

突发奇想,想下载谌龙的比赛的视频,因为资源少,怕以后找不到了,所以想下载留个纪念。

网上找了不少方法,最后成功能下载了,但是下载的有点慢。

主要代码

import requests
import json
import re
import tqdm

headers = {
    'Referer': 'https://v.qq.com/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
}

url = 'https://vd6.l.qq.com/proxyhttp'  #这个地方要根据视频更改
#data里面的内容是(网络-负载)
data = {"adparam":"adType=preAd&vid=z0040h5y12l&sspKey=phus",
        "buid":"vinfoad",
        "sspAdParam":"{\"ad_scene\":1,\"pre_ad_params\":{\"ad_scene\":1,\"user_type\":0,\"video\":{\"base\":{\"vid\":\"z0040h5y12l\",\"cid\":\"mzc00200c7217w6\"},\"is_live\":false,\"type_id\":4,\"referer\":\"\",\"url\":\"https://v.qq.com/x/cover/mzc00200c7217w6/z0040h5y12l.html\",\"flow_id\":\"c9c280caacbe397e4cfcaf4b7cac93fd\",\"refresh_id\":\"3933de767de03c98c7b5eef1b95cce86_1727256894\",\"fmt\":\"fhd\"},\"platform\":{\"guid\":\"d100acff3b2fe022\",\"channel_id\":0,\"site\":\"web\",\"platform\":\"in\",\"from\":0,\"device\":\"pc\",\"play_platform\":10201,\"pv_tag\":\"cn_bing_com\",\"support_click_scan_integration\":true,\"qimei32\":\"66c9adefa1e14dd7594a6ad4ebd58574\"},\"player\":{\"version\":\"1.35.6\",\"plugin\":\"3.5.23\",\"switch\":1,\"play_type\":\"0\"},\"token\":{\"type\":2,\"vuid\":1048222535,\"vuser_session\":\"S8MFYd8xM08MnLzeMxehgw.M\",\"app_id\":\"wx5ed58254bc0d6b7f\",\"open_id\":\"ox8XOvj7XnSKbxbRFNcSQGiCjt6c\",\"access_token\":\"84_01UB8IAcIpwAefA_6LxidAMs2VPHiBmwIOXtev_5g7PVxMEnK5Ej6IU1BcNNBUPaKLX5bROXFKVH8BqUwy5i4ETD4d9UWha0CF-crgEQ-fQ\"},\"req_extra_info\":{\"now_timestamp_s\":1727256908,\"ad_frequency_control_time_list\":{\"full_pause_short_bid_forbid_cid\":{\"ad_frequency_control_time_list\":[1727245830]},\"full_pause_short_bid_forbid_vid\":{\"ad_frequency_control_time_list\":[1727245830]},\"full_pause_short_vip_bid\":{\"ad_frequency_control_time_list\":[1727245830]},\"full_pause_feed_back_bid\":{\"ad_frequency_control_time_list\":[1727245854]},\"full_pause_feedback_bid_successive\":{\"ad_frequency_control_time_list\":[1727245854]}}},\"extra_info\":{}}}",
        "vinfoparam":"charge=0&otype=ojson&defnpayver=3&spau=1&spaudio=0&spwm=1&sphls=2&host=v.qq.com&refer=https%3A%2F%2Fv.qq.com%2Fx%2Fcover%2Fmzc00200c7217w6%2Fz0040h5y12l.html&ehost=https%3A%2F%2Fv.qq.com%2Fx%2Fcover%2Fmzc00200c7217w6%2Fz0040h5y12l.html&sphttps=1&encryptVer=9.2&cKey=ZGRE2MBGbEe1EM1Orq2-LnCjnpb8Ocr0cPTfNxSezEul_f4uOWcoV2JGR8Gi77I5PQsGz0UNymoKCp7VHCeQghpmp7rG5tiHjLv_PnnatnPaZfOXktuBpd_Im7lpptOC3137_IMO4ZljFjOj-NmZhE-NjjawCzIdF66cdsFdzz5jk70UOmynTHDptaxqIemxrSlkg-M_BbDaBoWksGXkUJYnQqXKgvocvCDoQBra3Bby3kOuy43cimfOmzq1z1qQhZLBGLDbv4EFi3m5pvAjoPAdvjeBPEfwmNLx9gg9S9d4Iprj18f4srmonrvqrNxNeMd3iKEm84r3Le-qhtp4vqhNjMzhK-YYbu2lP_EWl56z9lwdKyYQnLktXEYyhEUmDrA3IbNOfOI9n9Yg4447wvO9O4HJ7ca55FPK0NZz1Ixa3pjONAPEg-Hy4nz9tvUWJLrh9neuTd5VHF1l-njSiE0ZoqGEbo31xvHktwQcBtrXy3VLBAQEBAMukik&clip=4&guid=d100acff3b2fe022&flowid=c9c280caacbe397e4cfcaf4b7cac93fd&platform=10201&sdtfrom=v1010&appVer=1.35.8&unid=&auth_from=&auth_ext=&vid=z0040h5y12l&defn=fhd&fhdswitch=0&dtype=3&spsrt=2&tm=1727256908&lang_code=0&logintoken=%7B%22access_token%22%3A%2284_01UB8IAcIpwAefA_6LxidAMs2VPHiBmwIOXtev_5g7PVxMEnK5Ej6IU1BcNNBUPaKLX5bROXFKVH8BqUwy5i4ETD4d9UWha0CF-crgEQ-fQ%22%2C%22appid%22%3A%22wx5ed58254bc0d6b7f%22%2C%22vusession%22%3A%22S8MFYd8xM08MnLzeMxehgw.M%22%2C%22openid%22%3A%22ox8XOvj7XnSKbxbRFNcSQGiCjt6c%22%2C%22vuserid%22%3A%221048222535%22%2C%22video_guid%22%3A%22d100acff3b2fe022%22%2C%22main_login%22%3A%22wx%22%7D&spvvpay=1&spadseg=3&spvvc=3&spav1=15&spsfrhdr=0&spvideo=0&spm3u8tag=67&spmasterm3u8=3&hevclv=31&drm=40"}


response = requests.post(url=url, json=data, headers=headers)

json_data = response.json()

vinfo = json_data['vinfo']

info_json = json.loads(vinfo)

# 提取m3u8链接地址
m3u8_url = info_json['vl']['vi'][0]['ul']['ui'][-1]['url']

m3u8 = requests.get(url=m3u8_url, headers=headers).text

ts_list = re.findall(',\n(.*?)\n#', m3u8)
ts_name = '/'.join(m3u8_url.split('/')[:-1]) + '/'
#for循环遍历
for ts in tqdm.tqdm(ts_list):
    # 拼接完整的ts视频链接地址
    ts_url = ts_name + ts
    # 获取视频片段内容
    ts_content = requests.get(url=ts_url, headers=headers).content
    with open('111.mp4', mode='ab') as f:    #这个地方的111.mp4 写的文件名(提前新建一个MP4文件)
        f.write(ts_content)

 打开你要下载的视频,F12打开开发人员工具,刷新页面,然后Ctrl+F搜索m3u8。

找到proxyhttp这个东西

然后把里面的复制下来,粘贴到url那。

点负载,把里面这堆全复制了,粘贴到data那。

就是这部分,要根据自己要下的视频改 

url = 'https://vd6.l.qq.com/proxyhttp'

data = {"adparam":"adType=preAd&vid=z0040h5y12l&sspKey=phus",
        "buid":"vinfoad",
        "sspAdParam":"{\"ad_scene\":1,\"pre_ad_params\":{\"ad_scene\":1,\"user_type\":0,\"video\":{\"base\":{\"vid\":\"z0040h5y12l\",\"cid\":\"mzc00200c7217w6\"},\"is_live\":false,\"type_id\":4,\"referer\":\"\",\"url\":\"https://v.qq.com/x/cover/mzc00200c7217w6/z0040h5y12l.html\",\"flow_id\":\"c9c280caacbe397e4cfcaf4b7cac93fd\",\"refresh_id\":\"3933de767de03c98c7b5eef1b95cce86_1727256894\",\"fmt\":\"fhd\"},\"platform\":{\"guid\":\"d100acff3b2fe022\",\"channel_id\":0,\"site\":\"web\",\"platform\":\"in\",\"from\":0,\"device\":\"pc\",\"play_platform\":10201,\"pv_tag\":\"cn_bing_com\",\"support_click_scan_integration\":true,\"qimei32\":\"66c9adefa1e14dd7594a6ad4ebd58574\"},\"player\":{\"version\":\"1.35.6\",\"plugin\":\"3.5.23\",\"switch\":1,\"play_type\":\"0\"},\"token\":{\"type\":2,\"vuid\":1048222535,\"vuser_session\":\"S8MFYd8xM08MnLzeMxehgw.M\",\"app_id\":\"wx5ed58254bc0d6b7f\",\"open_id\":\"ox8XOvj7XnSKbxbRFNcSQGiCjt6c\",\"access_token\":\"84_01UB8IAcIpwAefA_6LxidAMs2VPHiBmwIOXtev_5g7PVxMEnK5Ej6IU1BcNNBUPaKLX5bROXFKVH8BqUwy5i4ETD4d9UWha0CF-crgEQ-fQ\"},\"req_extra_info\":{\"now_timestamp_s\":1727256908,\"ad_frequency_control_time_list\":{\"full_pause_short_bid_forbid_cid\":{\"ad_frequency_control_time_list\":[1727245830]},\"full_pause_short_bid_forbid_vid\":{\"ad_frequency_control_time_list\":[1727245830]},\"full_pause_short_vip_bid\":{\"ad_frequency_control_time_list\":[1727245830]},\"full_pause_feed_back_bid\":{\"ad_frequency_control_time_list\":[1727245854]},\"full_pause_feedback_bid_successive\":{\"ad_frequency_control_time_list\":[1727245854]}}},\"extra_info\":{}}}",
        "vinfoparam":"charge=0&otype=ojson&defnpayver=3&spau=1&spaudio=0&spwm=1&sphls=2&host=v.qq.com&refer=https%3A%2F%2Fv.qq.com%2Fx%2Fcover%2Fmzc00200c7217w6%2Fz0040h5y12l.html&ehost=https%3A%2F%2Fv.qq.com%2Fx%2Fcover%2Fmzc00200c7217w6%2Fz0040h5y12l.html&sphttps=1&encryptVer=9.2&cKey=ZGRE2MBGbEe1EM1Orq2-LnCjnpb8Ocr0cPTfNxSezEul_f4uOWcoV2JGR8Gi77I5PQsGz0UNymoKCp7VHCeQghpmp7rG5tiHjLv_PnnatnPaZfOXktuBpd_Im7lpptOC3137_IMO4ZljFjOj-NmZhE-NjjawCzIdF66cdsFdzz5jk70UOmynTHDptaxqIemxrSlkg-M_BbDaBoWksGXkUJYnQqXKgvocvCDoQBra3Bby3kOuy43cimfOmzq1z1qQhZLBGLDbv4EFi3m5pvAjoPAdvjeBPEfwmNLx9gg9S9d4Iprj18f4srmonrvqrNxNeMd3iKEm84r3Le-qhtp4vqhNjMzhK-YYbu2lP_EWl56z9lwdKyYQnLktXEYyhEUmDrA3IbNOfOI9n9Yg4447wvO9O4HJ7ca55FPK0NZz1Ixa3pjONAPEg-Hy4nz9tvUWJLrh9neuTd5VHF1l-njSiE0ZoqGEbo31xvHktwQcBtrXy3VLBAQEBAMukik&clip=4&guid=d100acff3b2fe022&flowid=c9c280caacbe397e4cfcaf4b7cac93fd&platform=10201&sdtfrom=v1010&appVer=1.35.8&unid=&auth_from=&auth_ext=&vid=z0040h5y12l&defn=fhd&fhdswitch=0&dtype=3&spsrt=2&tm=1727256908&lang_code=0&logintoken=%7B%22access_token%22%3A%2284_01UB8IAcIpwAefA_6LxidAMs2VPHiBmwIOXtev_5g7PVxMEnK5Ej6IU1BcNNBUPaKLX5bROXFKVH8BqUwy5i4ETD4d9UWha0CF-crgEQ-fQ%22%2C%22appid%22%3A%22wx5ed58254bc0d6b7f%22%2C%22vusession%22%3A%22S8MFYd8xM08MnLzeMxehgw.M%22%2C%22openid%22%3A%22ox8XOvj7XnSKbxbRFNcSQGiCjt6c%22%2C%22vuserid%22%3A%221048222535%22%2C%22video_guid%22%3A%22d100acff3b2fe022%22%2C%22main_login%22%3A%22wx%22%7D&spvvpay=1&spadseg=3&spvvc=3&spav1=15&spsfrhdr=0&spvideo=0&spm3u8tag=67&spmasterm3u8=3&hevclv=31&drm=40"}

 记得运行前要新建一个MP4文件,如代码中的‘111.mp4’

这一部分,文件名随便,但是要保持一致

for ts in tqdm.tqdm(ts_list):
    ts_url = ts_name + ts
    ts_content = requests.get(url=ts_url, headers=headers).content
    with open('111.mp4', mode='ab') as f:
        f.write(ts_content)

你可以使用Python爬虫库Requests和BeautifulSoup来爬取腾讯VIP电影。 首先,你需要使用Requests库获取腾讯VIP电影的网页源代码,然后使用BeautifulSoup来解析网页。你可以使用以下代码: ```python import requests from bs4 import BeautifulSoup url = 'https://v.qq.com/vplus/movie/genre.html' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') ``` 现在,你可以使用BeautifulSoup来查找电影列表了。例如,下面的代码将查找所有电影的标题: ```python movies = soup.find_all('div', class_='list_item') for movie in movies: title = movie.find('a', class_='figure_title').text print(title) ``` 你也可以从每个电影的页面中获取更多信息,例如电影的导演、演员、评分和简介。这些信息可以在电影页面的HTML代码中找到,你可以使用BeautifulSoup来提取它们。例如,以下代码将获取电影页面的导演和演员: ```python movie_url = 'https://v.qq.com/x/cover/mzc00200c7x2cal.html' response = requests.get(movie_url) soup = BeautifulSoup(response.text, 'html.parser') directors = soup.find_all('a', {'_stat': 'video:director'}) for director in directors: print(director.text) actors = soup.find_all('a', {'_stat': 'video:actor'}) for actor in actors: print(actor.text) ``` 这只是爬取腾讯VIP电影的基础,你可以根据你的需求进行更多的定制和改进。另外,请注意腾讯VIP电影的网站可能有反爬虫机制,所以请遵守网站的规则并不要频繁地爬取数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxs.04

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值