[Python] 实时爬取B站排行榜并保存为表格——每周一个爬虫小教程系列
作者:精品下载站 日期:2020-06-13 00:00:00 浏览:79 分类:编程开发
从这周开始,每周来一个爬虫小教程,希望对你们有所帮助,这次的目标是B站排行榜至于爬取什么内容,目前感觉就把序号,名称以及评分爬取下来吧(因为我是边写教程边写代码的)
这次需要用到的知识:
Python基础知识
Requests模块
Xpath模块(说白了就是HTML)
有看我的博客:www.lanol.cn
首先来到这个页面https://www.bilibili.com/ranking/all/0/0/1,目前是全站榜,我们尝试切换到原创榜,就会发现网址栏对应的网址改变了,所以我们只需要修改网址就可以获取想要的榜单(我不确定会不会每天都变,没观察)
然后改变这个投稿类型和日期网址也会改变到这里我们就已经获取到想要爬取的网址了。request中的url也就确定了。
url=‘https://www.bilibili.com/ranking/all/0/0/1’
我们按快捷键Ctrl+U,查看源代码,然后搜索一下排行第一的视频。我们可以发现在源代码里面有,这样的话我们就可以直接用requests模块获取源码,再利用Xpath解析网页了。有关Xpath的时候方法可以看这篇文章Python爬虫:Xpath语法笔记。
然后来开始写代码,第一步永远都不会变的,先导入Requests模块和将网页源码转换为可以Xpath的模块(这两个模块如果没有可以pip一下,博客内也有教程,搜索即可)
importrequests importparsel
然后就是做一个请求头(伪装成普通浏览器去访问),一般来说刚开始只加一个user-agent就可以了,如果有反爬机制,再去加。
请求头也就是这一块我们一开始只放一个user-agent进去
我们复制下来之后是上面这样的,然后我们要转换成Python里面字典的格式。也就是加个引号就行了。
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
然后放到Python代码中就是这样子的。
headers={ 'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/83.0.4103.97Safari/537.36' }
这样requests模块中的headers就构造好了
然后就是写上这一句就可以获取到源码了。
response=requests.get(url=url,headers=headers).text
这句话的意思就是调用requests模块,然后get请求这个url,最后将获取到的内容取text格式然后赋值给response。
我们来执行看一下,不要忘记输出一下哦。
这样子我们的页面源码就获取到了,而且里面可以看到我们之前搜索的排行第一的视频:【官方MV】Mojito - 周杰伦。
然后我们回到网站,右键视频标题,点击检查。我们再在源码这右键一下,点击Copy,点击Copy Xpath,这样Xpath就复制下来了,动画演示:原文地址:www.lanol.cn
//*[@id="app"]/div[1]/div/div[1]/div[2]/div[3]/ul/li[1]/div[2]/div[2]/a
我们将这句Xpath粘贴到浏览器插件里面测试一下。
可以看见我们已经可以选中这句标题了,然后我们再利用HTML知识修改一下这句话,就可以获取到所有标题了。
//div[2]/div[2]/a
我们放到Python里面执行一下。
发现获取的内容似乎有点多,这里不仅把标题弄出来了,而且还将这句代码弄出来了,我们在后面加一个text()只获取文本内容。
这样就可以了,我们再来试一下获取分数。一如之前的操作,右键分数,点击检查,再在代码处右键,点击Copy,点击Copy Xpath。
//*[@id="app"]/div[1]/div/div[1]/div[2]/div[3]/ul/li[20]/div[2]/div[2]/div[2]/div
再修改一下这句话,以获取我们想要的全部内容。
//div[2]/div[2]/div[2]/div/text()
然后放到Python里面执行一下。
成功获取所有分数。
综上我们想要获取的信息都已经取到了。
然后就是写到表格之中,这里为了方便直接写到csv即可。直接贴代码了。
withopen('B站排行榜www.lanol.cn.csv','w')asf: f.write('标题,分数 ') forindex,iinenumerate(titles): f.write(f'{i},{grades[index]} ')
这样子,就可以了,这个只是一个思路,获取更多信息你可以自由发挥。
所有代码一共才17行,人生苦短,Python当歌,其实其他语言也可以,只是麻烦了一点而已。
所有代码如下:
[CommShow]
importparsel importrequests url='https://www.bilibili.com/ranking/all/0/0/1' headers={ 'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/83.0.4103.97Safari/537.36' } response=requests.get(url=url,headers=headers).text response=parsel.Selector(response) #www.lanol.cnLan的小站 titles=response.xpath('//div[2]/div[2]/a/text()').extract() grades=response.xpath('//div[2]/div[2]/div[2]/div/text()').extract() withopen('B站排行榜www.lanol.cn.csv','w')asf: f.write('标题,分数 ') forindex,iinenumerate(titles): f.write(f'{i},{grades[index]} ') print(grades)
[/CommShow]
猜你还喜欢
- 03-29 [编程相关] Winform窗体圆角以及描边完美解决方案
- 03-29 [前端问题] has been blocked by CORS policy跨域问题解决
- 03-29 [编程相关] GitHub Actions 入门教程
- 03-29 [编程探讨] CSS Grid 网格布局教程
- 10-12 [编程相关] python实现文件夹所有文件编码从GBK转为UTF8
- 10-11 [编程算法] opencv之霍夫变换:圆
- 10-11 [编程算法] OpenCV Camshift算法+目标跟踪源码
- 10-11 [Python] python 创建 Telnet 客户端
- 10-11 [编程相关] Python 基于 Yolov8 + CPU 实现物体检测
- 03-15 [脚本工具] 使用go语言开发自动化脚本 - 一键定场、抢购、预约、捡漏
- 01-08 [编程技术] 秒杀面试官系列 - Redis zset底层是怎么实现的
- 01-05 [编程技术] 《Redis设计与实现》pdf
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag