[Python] 实时爬取B站排行榜并保存为表格——每周一个爬虫小教程系列
作者:CC下载站 日期:2020-06-13 00:00:00 浏览:50 分类:编程开发
从这周开始,每周来一个爬虫小教程,希望对你们有所帮助,这次的目标是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进去
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里面字典的格式。也就是加个引号就行了。
'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
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[书籍] 【私人珍藏精品好书A-100部】
[书籍] TXT电子书大合集(70000本)
[教学资料] 全网最全各种医学病例3D演示【稀有资源】
[资料] 曲黎敏 - 黄帝内经 [MPG]
[书籍] 张九仪《秘传造葬制煞作法》[pdf]
[小说] 武侠小说合集(1912部)
[源码程序] 短剧机器人+付费进群系统,短剧新风口躺赚收益(附源码)
[开发辅助] 开发人员的终极工具箱 | He3(2.0.20.0)
[文件修改] PDF信息修改工具 PDF补丁丁 | PDFPatcher(1.0.1.4234)
[CF探险模式] 地图禁区畅玩攻略,高效获取禁区奖励
[资料] [大学期末救急课] 猴博士+高斯课堂+斐多课堂,全集视频合集
[云资源] 价值2万元的老男孩Python教程
[书库] 史上最全摄影书推荐(附700本PDF版打包下载)
[云资源] 花了一千多元买的私人健身教程
[下载工具] Internet Download Manager 6.42.7 (IDM)
[影视] 灌篮高手 WEB-DL版下载/Slam Dunk/スラムダンク/灌篮高手:THE FIRST/灌篮高手电影版 2022 The First Slam Dunk 61.35G
[即时通讯] 腾讯QQ PC版9.7.22.29315去广告绿色纯净版
[开发环境] PhpStorm2023中文激活版v2023.3.3 正式版
[资料] 3000 套电影电视剧 LOGO 宣传片常用音效合集包
[图像制作] Adobe Illustrator 2024 v28.1.0.141 破解版
[云资源] 价值2万元的老男孩Python教程
[影视] 灌篮高手 WEB-DL版下载/Slam Dunk/スラムダンク/灌篮高手:THE FIRST/灌篮高手电影版 2022 The First Slam Dunk 61.35G
[云资源] 花了一千多元买的私人健身教程
[书库] 史上最全摄影书推荐(附700本PDF版打包下载)
[电视剧] 三体 (2024) 全8集 网飞版本 中文字幕 合集
[剧集] 繁花 (2023)[全30集][打包]
[影视] 三大队 WEB-DL版下载/Endless Journey/请转告局长,三大队任务完成了 2023 三大队 6.7G
[纪录片] 河西走廊【10集 国语 中文字幕 1080P 10.8G MP4】
[安卓软件] OfficeSuite中文版APP v14.2.50872.0破解版
[影视] 涉过愤怒的海 WEB-DL版下载/怒海 / Across the Furious Sea 2023 涉过愤怒的海 26.3G
- 最新评论
-
谢谢支持!!CC下载站 评论于:03-26 很棒的资源,感谢分享云体风身 评论于:03-26 感谢分享,好东西云体风身 评论于:03-26 谢谢支持!CC下载站 评论于:03-14 央视精品,感谢付出提供。qwer9009 评论于:03-14 谢谢支持!!!CC下载站 评论于:03-13 谢谢分享!Ypc9182 评论于:03-12 谢谢支持!!CC下载站 评论于:03-11 感谢本网站收集和提供这么多的资料,谢谢!Ypc9182 评论于:03-10 很棒的资源,支持一下lingzhi007 评论于:03-10
- 热门tag