Python爬虫下载视频(bs4+re)
这几天老想看番又嫌小网站上一集集下着麻烦就想用爬虫弄一下。虽然遇到点问题,不过也是宝贵的经历,在这里分享一下(顺便送一个看番网站)。另外,有相关问题的可以私聊我(虽然我也是小白)
import time
from random import *
from bs4 import BeautifulSoup
import requests
import re
# 爬视频链接(爬完就注释掉了,不然看着心烦)
# f_url=open('pre_urlss','w',encoding='utf-8')
# for i in range(1,25):
# url=f'https://www.92wuc.com/player/910-1-{i}.html'
# resp=requests.get(url)
# find=BeautifulSoup(resp.text,'html.parser').find('div',class_="left_row fl").find('script').string
# obj = re.compile(r'.*?","url":"(?P<url>.*?)","url_next.*?')#这个网站源码找url有点麻烦,url不在tag内,只能把文本拿出来再用re匹配
# urls = obj.finditer(find)
# for i in urls:
# this_url = i.group('url')
# f_url.write(str(this_url).replace("\\",''))#源码里面url很奇怪,保存时修改一下
# f_url.write('\n')
# resp.close()
# time.sleep(random())#不知道这个有没有用,加着放心点
# f_url.close()
#下视频
a=int(input('从哪一集开始下:'))#为了方便多点选择
b=int(input('下到哪一集:'))
f_url=open('pre_urlss','r',encoding='utf-8')
for i in range(1,25):
url = f_url.readline().strip('\n')#从文件中拿出url得删去后面的换行符
if a<=i<=b:
print(f'第{i}集开始下载')
f_video=open(f'刀剑2/{i}.mp4','wb')
f_video.write(requests.get(url).content)
print(f'第{i}集下载完成、'+'url='+url)
f_video.close()
f_url.close()
总结:
请求不到网页可能是反爬了,加请求头
模拟用户加time.sleep(),不过不知道有没有用
文件里拿url删换行符,不然404
视频下载名字后缀加.mp4