用python爬虫 爬取梨视频并下载!

共 1514字,需浏览 4分钟

 ·

2021-01-17 11:10

引言

利用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二者加一个就可以!

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

万水千山总是情,点个【在看】行不行

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜

浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报