很多时候,我们在B站上喜欢一个阿婆主,我们想要把他(她)发出的所有的视频链接都获取下来时候,这时候就会很麻烦,毕竟如果视频只要一多,就会很麻烦了,很耗时间了。
这时候,使用爬虫进行爬取就是一个非常好的操作了。
下面就来介绍一下吧。
以B站上面一个我比较喜欢的电影视频阿婆主(bili_51592201250)作为例子吧。
1、首先打开B站,在搜索框中输入对应需要搜索的内容(bili_51592201250),之后点击搜索;
2、这时候能够看到如下图所示:
3、这个页面就是我们需要进行爬取并且处理的页面,废话不多说,直接分析页面,上代码;
4、直接从搜索结果可以看到这个阿婆主发布的视频有多少个页面,如下图所示(4页),这个页码可以选择使用代码进行获取,但是总的来说直接从页面中获取简单;
5、分析该页面对应的url链接,可以得知如下:
第一个页面url= https://search.bilibili.com/all?keyword=bili_51592201250&page=1
第二个页面url= https://search.bilibili.com/all?keyword=bili_51592201250&page=2
以此类推(在发起请求时候可以使用一个小循环进行逐个爬取)
6、发起请求前的准备
import requests,parsel,re
from fake_useragent import UserAgent
ua = UserAgent()
headers = {
"User-Agent":ua.random} # 设置请求头
7、发起请求
try:
res = requests.get(url,headers=headers) # 如果遇到反爬技术,可以考虑添加代理proxies={"https":"124.90.51.71:8888"}
if res.status_code == 200:
html = parsel.Selector(res.text)
urls = html.xpath('//ul[@class="video-list clearfix"]/li[@class="video-item matrix"]/a/@href').extract() # 每个视频对应的url链接
titles = html.xpath('//ul[@class="video-list clearfix"]/li[@class="video-item matrix"]/a/@title').extract() # 每个视频对应的标题
times = html.xpath('//ul[@class="video-list clearfix"]/li[@class="video-item matrix"]/a/div/span[1]/text()').extract() # 每个视频对应的时间长度
plays = html.xpath('//span[@title="观看"]/text()').extract() # 每个视频对应的播放量
except Exception as e:
# 如果上面的请求出现问题,那么一般就是反爬机制的作用,可以考虑在这里面添加代理进行爬取
# 或者也可以寻找其他的接口,获取up主的详情信息,记得B站有提供一个接口的
print("Fail:",e)
pass
代码量并不多,直接就可以获取到了对应的阿婆主发的所有的视频链接以及视频对应的其他一些信息,是不是非常的简单,快去尝试一下吧。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115145.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...