由于工作需要,我需要对B站(www.bilibili.com,以下简称B站)的热门排行榜视频的封面经行截取,就是排行榜(www.bilibili.com/v/popular/rank/all)中的这些视频封面:
在不使用爬虫的情况下,下载一张高清的视频封面要经历下面的这些步骤:
1.首先F12,打开开发者调试工具:
2.然后再用那个萌萌哒检查工具去查看图片链接
3.最后再通过图片的下载链接获得封面的高清图
要知道,b站排行榜一共有24个子榜单,每个榜里有100个视频,一共是2400个视频,要是每一个封面都用手动去下载,这何只是折磨,简直就是折磨! 这谁定的住啊,我不能接受,看来是时候召唤我的“爬虫先生”了!
上一次用python还是几年前的事情,不过为了我的肝,就算是忘了我也是拾回来!!(其实我的专业是学C的,如果以后有时间的话,我想尝试用C(至少是C++)尝试着写一份爬虫)
我也算是深谙《拿来主义》,再最初的时候,打算直接从网上copy一份爬虫代码,直接用,于是通过各种关键词我搜到了下面几篇文章或是代码(当然了,虽然不能直接用,但是这些大佬的代码为我的缝合提供了丰富的资源,我最终的成品也缝了一部分这些大佬的代码)
2.批量爬取B站收藏夹封面ver2.0 Python 爬虫 多线程
4.Python爬虫实战!教你如何一键批量下载B站收藏夹视频!
5.Python爬虫之批量爬取B站视频封面(内含爬虫概念理解、requests、xpath初级教学及爬虫遇反爬和内容乱码的解决手段)
不过很可惜,这些代码都不能直接使用,这就很难受了,看来只剩下自己整这一条路了
cpoy无望的我又回到b站排行的页面开始观察这一段html的规律
说实话,写这个页面的程序真上辈子一定是个仙女吧,这代码太漂亮了,看的就令人身心愉悦:
很好,开门红,有这一段仙女代码,我们的爬虫之旅应该会很愉悦,先来几句python,我们尝试把这段代码下载下来:
import requests
#这里定义一个名为“bili”的函数,并要求传入一个数值----url,这个函数用于获取视频页面源码
def bili_analysis(url):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'}
#这里必须是字典格式(键值对形式)
url = str(url) #将传入信息转为字符串(保险)
resp = requests.get(url=url,headers=headers) #发送get请求,并使用自带头信息来进行反反爬
html_text = resp.text #将获取信息转为文本
if resp.status_code == 200: #如果状态码为200(请求成功)则返回网页数据
print(html_text) #显示下载出来的代码
return html_text
else:
print('Get error')
url='https://www.bilibili.com/v/popular/rank/all'
bili_analysis(url)
在pycharm(以下简称PC)中运行这段代码,你会得到这样一堆东西:
当你把右面的滑块拉到最底部之后,会出现这些东西:
很好,网站的代码我们成功的下载了,嘿嘿