首页 / 爬虫 / B站路飞学城爬虫教学爬取梨视频
B站路飞学城爬虫教学爬取梨视频
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了B站路飞学城爬虫教学爬取梨视频,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2025字,纯文字阅读大概需要3分钟。
内容图文
![B站路飞学城爬虫教学爬取梨视频](/upload/InfoBanner/zyjiaocheng/999/3c4317e9243040a489e14cd5419f6539.jpg)
import requests from lxml import etree import re import os from multiprocessing.dummy import Pool import random if __name__ == '__main__': #创建视频得文件 if not os.path.exists("./video"): os.mkdir("./video") url="https://www.pearvideo.com/category_59" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4455.2 Safari/537.36" } page_text=requests.get(url=url,headers=headers).text tree=etree.HTML(page_text) li_list=tree.xpath('//*[@id="listvideoList"]/ul/li') video_ajax="https://www.pearvideo.com/videoStatus.jsp?"#通过抓包工具获取 urls = [] # 存储所有视频的链接and名字 for li in li_list: video_id=li.xpath('./div/a/@href')[0]#得到视频id,如video_1727785 video_num=video_id.split('_')[1]#得到视频id里得数字 video_name=li.xpath("./div/a/div[2]/text()")[0]+'.mp4' params={ 'contId':video_num, 'mrd':str(random.random())#随机数 } video_headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4455.2 Safari/537.36", 'Referer': 'https://www.pearvideo.com/' +video_id } video_dic=requests.get(url=video_ajax,headers=video_headers,params=params).json() # print(video_dic)#此时就不会显示下架了,得到含有视频地址得字典 video_url=video_dic["videoInfo"]["videos"]["srcUrl"] # 此处视频地址做了加密即ajax中得到的地址需要加上cont-,并且修改一段数字为id才是真地址 # 真地址:"https://video.pearvideo.com/mp4/third/20201120/cont-1708144-10305425-222728-hd.mp4" # 伪地址:"https://video.pearvideo.com/mp4/third/20201120/1606132035863-10305425-222728-hd.mp4" re_list=re.split('[/-]', video_url) re_str=re_list[6] video_true_url=video_url.replace(re_str,"cont-"+video_num) # print(video_true_url) dic={ "name":video_name, "url":video_true_url } urls.append(dic) #使用线程池对视频数进行请求 def get_video_data(dic): url=dic["url"] name=dic["name"] print(name+"正在下载。。。。。。") video_data=requests.get(url=url,headers=headers).content with open("./video/"+name,"wb")as fp: fp.write(video_data) print(name+"下载成功!!!") pool=Pool(4) pool.map(get_video_data,urls) pool.close() pool.join()
内容总结
以上是互联网集市为您收集整理的B站路飞学城爬虫教学爬取梨视频全部内容,希望文章能够帮你解决B站路飞学城爬虫教学爬取梨视频所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。