爬虫实战:爬取bilibiliTop100条热门视频信息

您所在的位置:网站首页 b站视频播放排行榜 爬虫实战:爬取bilibiliTop100条热门视频信息

爬虫实战:爬取bilibiliTop100条热门视频信息

2023-10-05 09:33| 来源: 网络整理| 查看: 265

爬取bilibiliTop100条热门视频信息

对于信息的爬取可以分为三个步骤进行处理,分别是获取网页、获取和解析数据最后保存数据。于是我们的主函数的框架如下:

def main(): # 1. 获取网页 baseurl = "https://www.bilibili.com/v/popular/rank/all" # 2. 获取和解析数据 datalist = getData(baseurl) # 3. 保存数据 savepath = "./B站热门视频.xls" saveData(datalist,savepath)

爬虫毕竟是爬虫在它进行网页的访问的时候一般不能够直接进行访问,需要进行一定的伪装,伪装的信息可以通过Fn+F12查看。

以上URL是我们目标爬取网址,访问的方式也可以看到是GET,为了进行伪装,需要得到访问网页的正式信息,我们继续查看信息,可以看到以下:

在这里插入图片描述

这里我们选取user-agent和cookies这两条信息(伪装的信息越多越好),user-agent其实是游览器的版本信息,cookies是用户的信息(非常重要,没有会被反扒)。

def askURL(url): head = { "user-agent" : "Mozilla / 5.0(Windows NT 10.0;WOW64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 88.0.4324.104 Safari / 537.36", "referer" : "https: // www.bilibili.com /", "cookie": "_uuid = DFE59F2A - D16B - 327E - D501 - 9CA14392FF8059467infoc;buvid3 = 0041FC1C - 2C18 - 4DDE - 965F - 9DEF43D88176155809infoc;rpdid = | (YYR~ | uklm0J'ul))u~JRuJ; sid=9n9kd7a4; LIVE_BUVID=AUTO2815885539756041; blackside_state=1; CURRENT_FNVAL=80; PVID=1; CURRENT_QUALITY=80; DedeUserID=434641640; DedeUserID__ckMd5=1b9357ca56a49330; SESSDATA=ab62e58a%2C1619879365%2C80832*b1; bili_jct=01ecd2f4c1f3d0e94aa31b03a7bea6ec; bp_t_offset_434641640=491560557515702800; bp_video_offset_434641640=491834756822300005; finger=1777945899" } request = urllib.request.Request(url,headers = head) html = "" try: response = urllib.request.urlopen(request) html = response.read().decode("utf-8") except urllib.error.URLError as e: if hasattr(e,"code"): print(e,"code") if hasattr(e,"reason"): print(e,"reason") return html

在获取完网页的解析后的html文件之后,然后就是对你需要的信息进行筛选,通过观察信息的结构先进行定位,定位之后在通过正则表达式再次进行信息的筛选。

可以通过以下的方式获取需要的信息的特征,比如我需要得到B站热门视频的每条视屏的信息:

在这里插入图片描述

以下就是对应的模块的代码信息:

在这里插入图片描述

找寻的方式有很多,比如你可以用li行进寻找,每一个li都对应着一个热门视频信息。但其实发现在所有内容中只有在这个模块中div对应的class是content,于是我们可以用一下的方式进行寻找:

html = askURL(baseurl) soup = BeautifulSoup(html, "html.parser") soup.find_all("div",class_="content")

在确定每个视频的位置之后,就只需要在获得的代码中进一步筛选,比如需要在这个模块中找出排名、



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3