我挺喜欢梦龙(Imagine Dragon)的歌。因此,我去搜了一波xx音乐(只可臆想,不可言传),发现要2x币下载,脑热,就去网上搜现场版MV,过瘾有激情。试了一下,不能直接下载,刚好赶上我最近在学爬虫。所以,干脆自己动手爬下来。在此,我跟大家分享一波。
此次案例的网址是:
https://haokan.baidu.com/v?vid=15746080043707732068&pd=bjh&fr=bjhauthor&type=video。
喜欢梦龙的朋友,可以跟着我一起用这个方法下载现场版MV。完整代码如下:
from selenium import webdriver
from lxml import etree
import re
import requests
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=options)
url = 'https://haokan.baidu.com/v?vid=15746080043707732068&pd=bjh&fr=bjhauthor&type=video'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 Edg/84.0.522.50'
}
driver.get(url)
html = driver.page_source
select = etree.HTML(html)
video = select.xpath('//*[@id="mse"]/video/@src')
for v in video:
believer = requests.get(v,headers=headers)
with open('E:\\video\\believer.avi','wb+') as f:
f.write(believer.content)
首先,我们先导入可能会用的库。如下图:
接着,我们开启万花筒模式(无界面),如下图:
然后,我们开始设置url地址和请求头headers。如下图:
接着,我们使用get请求,获得页面的源代码,再根据源代码创建选择器。如下图:
之后,我们去观察网页结构,如下图:
发现标签video里面的属性src有一个链接地址,应该是视频地址,我们把它复制下来去访问一下,如下图:
我们发现是对的,所以,我们的目标明确,接着就开始干!!撸起袖子加油干!!我们要提取这个标签下的属性,所以,我们复制video标签对应的xpath路径,就有:
然后,我们要把这个地址进行循环(因为返回是列表类型,我们需要的是列表内部的元素!!),以二进制的形式写入视频文件,这样就能下载到本地计算机上了。所以有:
结果,大家可以看见在我的E盘的video文件夹(目录)下面生成了一个视频文件。
打开效果,截图没有声音,但是视频是有声音的,因为截图,上传限制,截不了,请大家见谅。
很开森,免费下载现场版梦龙MV。心情开森了不少,今天又学了视频爬取,感觉,每天都有收获,很不错。
最后,感谢大家前来观看鄙人的文章,文中或有诸多不妥之处,还望指出和海涵。