p站多线程下载视频 | 您所在的位置:网站首页 › p站上的视频怎么下 › p站多线程下载视频 |
import re ######################较稳定,可以爬取多部
import requests as req
from bs4 import BeautifulSoup as bs
import pandas as pd
import time
import threading
from tqdm import tqdm_notebook as tqdm
import os
import winsound
def download(res,title,number):
try:
first_byte=0
html=req.get(res,stream=True)
length = (html.headers['content-length'])
size=int((length))
if (size/1024/1024)'User-Agent': 'xxxxxxxxxxxxxxx'})
data=url.text
x=re.findall('"quality_720p":"(.*?)"',data,re.S)
time.sleep(0.2)
url2=x[0].replace('\\','')
url3=url2.split('/')
del url3[1]
res=('//'.join(url3))
else:
print('--准备爬取--第{}部影片-1080p-{}'.format(str(i+1),y),'\n')
while 'ttl'not in x[0]:
# print(x[0])
url=req.get(url=realurl[i],headers={'User-Agent': 'xxxxxxxxxxxxxxx'})
data=url.text
x=re.findall('"quality_1080p":"(.*?)"',data,re.S)
time.sleep(0.2)
url2=x[0].replace('\\','')
url3=url2.split('/')
del url3[1]
res=('//'.join(url3))
list1.append(res)
titles.append(y)
for i in range(len(list1)):
print ('--开始爬取--第{}部影片--{}'.format(i+1,titles[i]),'\n')
th=threading.Thread(target=download,args=(list1[i],titles[i],i+1,))
th.start()
time.sleep(0.1)
n+=1
ths.append(th)
for i in ths:
i.join()
print('=================================全部视频已爬取完毕=========================================')
winsound.Beep(1000,500)
该代码需在代理全局模式下运行,只能爬取1080p和720p视频 注意的点: 1.代码上的headers的user-agent里面的xxxx要替换成自己打开p站网页的user-agent,在chrome浏览器里随便打开p站一个视频的网站,f12检查并且点选手机模式(图中圈出那里,我也不知道是不是叫手机模式),然后复制user-agent. 运行 1.会先弹出爬取几部, 2,然后逐步把视频地址复制黏贴过去即可 3.开始运行 |
CopyRight 2018-2019 实验室设备网 版权所有 |