开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 30827|回复: 1
收起左侧

[源码分享] l视频p虫

[复制链接]
结帖率:17% (1/6)
发表于 2021-12-10 15:27:07 | 显示全部楼层 |阅读模式   广东省深圳市
  
import requests
from lxml import etree
import re
from concurrent.futures import ProcessPoolExecutor
from multiprocessing.dummy import Pool
import time
import random
url= ' https://www.pearvideo.com/category_5'
headtop={
' User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
}
adata=requests.get (url=url,headers=headtop).text ###想要拿到MP4必须进入视频里面在获取MP4url
tree=etree.HTML (adata)
li_list=tree.xpath ( ' //ul[@id="listvideoListUl"]/li')
urls=[]
for li in li_list:
spurl= ' https://www.pearvideo.com/'+li.xpath('./div/a/@href')[0]#视频进入的链接
spname=li.xpath ( ' ./div/a/div[2]/text()')[0]+'.mp4'#视频名称加后缀
enterdata=requests.get (url=spurl,headers=headtop).text #进入视频网页
mp4urlid=re.sub ("\D","",spurl) #正则获取视频id  {可以print看看url}
#timezhou =str ( random.Random ())
#random .Random ()      #0 .1111123这个不重要 这个是在阿贾克斯返回MP4链接请求用到不过不重要
#print (spurl)
headtops={
' Referer':spurl,
' User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
} #当我们打开抓包工具查看阿贾克斯返回时候发现MP4在阿贾克斯返回json里面 想要拿到json 要加上head Referer才能获取碰巧Referer是想获取该视频进入的链接
mp4url= ' https://www.pearvideo.com/videoStatus.jsp?contId='+mp4urlid+'&mrd=0.6387279085804516'
#####mp4url拼接 由于正则不好勉强拼接出来,把错误都MP4url加上cont-加视频id即可 #####
# [url=https://video.pearvideo.com/mp4/third/20211209/1639066911889-11298265-140008-hd.mp4]https://video.pearvideo.com/mp4/third/20211209/1639066911889-11298265-140008-hd.mp4[/url] 错误
# [url=https://video.pearvideo.com/mp4/third/20211209/cont-1747476-11298265-140008-hd.mp4]https://video.pearvideo.com/mp4/third/20211209/cont-1747476-11298265-140008-hd.mp4[/url]  正确
#print (mp4urlid)
mp4urldata=requests.get (url=mp4url,headers=headtops).text
#print (mp4urldata)
ex= ' srcUrl":"(.*?)"}}'
mp4urldownload=re.findall (ex,mp4urldata)[0]
mp4urldownloadw = re.findall (r ' -.+mp4', mp4urldownload)[0]
#print (mp4urldownloadw)
mp4urldownload1=re.findall (r ' https.+/20....../',mp4urldownload)[0]+'cont-'+mp4urlid+mp4urldownloadw
#print ( mp4urldownload1)
dic={
' name':spname,
' url':mp4urldownload1
}
urls.append (dic)
def get_pool (dic):
url=dic[ ' url']
name=dic[ ' name']
mp4data=requests.get (url=url,headers=headtops).content
mp4lenght=len (mp4data)
with open (name,mode= ' wb')as f:
f.write (mp4data)
print ( ' 总长度%s已下载完成'%(mp4lenght))
pool=Pool (4)
pool.map (get_pool,urls)
pool.close ()
pool.join ()
#
# [url=https://video.pearvideo.com/mp4/third/20211209/1639066911889-11298265-140008-hd.mp4]https://video.pearvideo.com/mp4/third/20211209/1639066911889-11298265-140008-hd.mp4[/url] 错误
# [url=https://video.pearvideo.com/mp4/third/20211209/cont-1747476-11298265-140008-hd.mp4]https://video.pearvideo.com/mp4/third/20211209/cont-1747476-11298265-140008-hd.mp4[/url]  正确

结帖率:100% (14/14)

签到天数: 5 天

发表于 2021-12-10 15:35:05 | 显示全部楼层   河南省洛阳市
感谢分享,学习一下.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表