用python爬虫 爬取梨视频并下载!
引言
利用python爬虫进行视频下载,本次文章将对梨视频网站的视频进行爬取,由于爬虫本身介于一个灰色与敏感的地带,所以建议大家在使用爬虫的时候先对网站的限制了解。在此之前作者已经了解,可放心使用。
爬取流程分析
第一步:分析url
这次是对梨视频网站的视频进行爬取(https://www.pearvideo.com/)
在此页面下有许多小视频,随便点击一个查看视频网页的url(https://www.pearvideo.com/video_1713546)
网站视频具有时效性,依据网页更新即可。在此页面下按F12,查看网页代码,会发现找不到视频的url。但点击播放,视频的url就弹出来了(https://video.pearvideo.com/mp4/adshort/20201226/cont-1713546-15547701_adpkg-ad_hd.mp4)自此url也就找出来了。
第二步:对url发起get请求
由于这里出现三个url,在这里三个url都有所用处,详见代码。
第三步:数据获取
有两个,一个是视频的url获取,另外一个是下载视频的url获取。
第四步:保存数据
在这里我们可以直接使用python文件操作的方式进行存储,直接命名带后缀MP4即可。
代码实现
终于到了激动人心的时刻了。老实说,当晚爬出视频的时候确实挺开心的,本人还是python爬虫的初学者,实属不易。
第一步:导入包
import requests
import re
from bs4 import BeautifulSoup
from selenium import webdriver
第二步:对url发起get请求
def get_url(url,i):
txt = requests.get(url).text
soup = BeautifulSoup(txt, 'lxml')
txt1 = soup.find_all('a')
con = re.findall(r', str(txt1))
url1 = url + con[i]
print(url1)
return url1
解释一下,参数url是指视频网站url,i是指第几个视频。而代码的意思就是通过获取视频的代号编码,然后与url进行拼接形成视频url。之前分析url也能看出,视频url与网站的url也就相差了video-xxxxx。
第三步:获取视频数据
def get_mp4(url1):
browser = webdriver.Chrome('chromedriver')
browser.get(url1)
button = browser.find_element_by_tag_name('i')
button.click()
soup = BeautifulSoup(browser.page_source, 'lxml')
sp1 = soup.find_all('video')
mp4_url = re.findall(r'',
str(sp1))
mp4 = requests.get(mp4_url[0])
return mp4.content
由于在之前查看开发者工具时,发现需要点击播放才可以显示下载视频的url,所以使用模拟浏览器的方法。当然如果你有更好的方法可以留言给我,非常感谢。自此视频数据已获取完毕。
保存视频
url1 = get_url(url,1)
with open('second.mp4', 'wb') as f:
mp4 = get_mp4(url1)
f.write(mp4)
在这里文件的格式可以看到是使用了‘wb’的方法进行存储。运行快慢视网速快慢而定。
结果
扫下方二维码加老师微信
或是搜索老师微信号:XTUOL1988【切记备注:学习Python】
领取Python web开发,Python爬虫,Python数据分析,人工智能等学习教程。带你从零基础系统性的学好Python!
也可以加老师建的Python技术学习教程qq裙:245345507,二者加一个就可以!
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
万水千山总是情,点个【在看】行不行
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜