首页 >> 大全

帮小姐姐写个爬虫,赢得她请我喝下午茶

2023-11-25 大全 21 作者:考证青年

帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶_

小姐姐的请求

不知道大家是否关注到,我的文章经常在csdn的华为云博客中进行转载,没办法人缘好,认识她们运营的小姐姐啊!但是前几天她和我说到了一个自己的困扰。领导让她每周统计一次华为云发布的所有文章数据,包括类型(原创/转载)、标题、链接、访问量、评论数。

听起来就够麻烦了,等我登陆csdn看到他们居然收录了1600多篇文章的时候,更懵逼了...小姐姐问能否获取数据,那还用说当然OK了。刚好周末在家看了下csdn的网站结构,觉得蛮简单的梳理了下思路,写了些片段的代码。

今天,小姐姐突然说要请我喝下午茶,原来是领导又催她统计csdn数据了。

帮小姐姐写个爬虫,赢得她请我喝下午茶__帮小姐姐写个爬虫,赢得她请我喝下午茶

作为从小扶老奶奶过马路的新时代活雷锋,这个下午茶 ,不, 这个忙我肯定要帮的啊!之前已经准备了一些代码片段,重新梳理思路、优化逻辑,不到半小时就整理了一份excel数据。然后你懂得,当然是下午茶喽...不贪心,一杯瑞幸纳瑞冰,哈哈!

_帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶

下面就来说说代码的实现过程吧...

CSDN网站分析

首先,每个用户都有一个自己的主页,比如我的CSDN地址:

帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶_

其实平时都是在简书上写文章的,然后csdn使用博客搬家功能自动从简书同步。个人还是比较喜欢简书的书写风格,但没办法谁让小姐姐他们领导要搞csdn呢。盘它就完了!进入首页后,我们拖动到底部会看到第几页第几页的数字,我们随便选择后面的页码,跳转后我们的url变成了下面这样:

这逻辑简直不要太简单,非常适合新手们用作爬虫练习。我们只需要for循环构造页码,然后一页一页的爬下去就好了。那么什么时候结束呢?当你的url获取页码后展示如下,就可以根据返回内容结束代码了,是不是so easy!

帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶_

_帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶

html解析

为什么说csdn比较适合新手学习爬虫呢,让我们再来通过他的页面结构了解下,如下图:

_帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶

看清楚就会发现,csdn的网站结构清晰明了。我们只需要分别获取每一页的url后定位到-list,然后遍历每一个-item-box。在每一个栅格栏内部标注的位置,获取到对应的数据即可!这里唯一有一点麻烦的是

原创“     Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署     ”

往常我们获取a标签的内容,直接使用a.text即可,但在a标签内部又设计到一个span标签,直接获取会得到一下结果:

原创    “     Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署     ”

想使用什么child、next等方式都是无法实现仅获取标题内容的,所以可以尝试先获取文章类型,然后清空span标签,这样就可以得到最终的标题内容了,代码如下:

article_type = article.a.span.text
article_url = article.a["href"]
article_span = article.a.find_all('span')
for i in article_span:i.clear()

分析完成,我们先跑一边代码,看看能否获取到所需数据,得到如下结果:

_帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶

数据没问题了,那怎么保存呢?当然是excel了!

保存excel

操作excel的库很多,之前专门总结过一波:

操作Excel 模块,你猜哪家强?

个人比较中意的是,具体的操作就不在这赘述了,来看看最后的统计效果:

_帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶

帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶_

以为这样就结束了?怎么可能...

打包可执行文件

既然喝了小姐姐的下午茶,总不能每周统计的时候,都敲诈一波小姐姐吧。可是代码发给她,她一不会、二没有环境,这可如何是好?那么,我们为什么不尝试去把代码打包成下的可执行文件呢?又到了我最喜欢的打包模块出场的时间了,不了解的看这里:

打包工具--详细介绍

既然我们只要随便输入一个用户的首页url,就能全篇爬取他的文章内容,我们就来做一个简单的GUI功能吧:

_帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶

最后我们只需要将它打包成exe工具,脱离环境直接运行即可!

帮小姐姐写个爬虫,赢得她请我喝下午茶_帮小姐姐写个爬虫,赢得她请我喝下午茶_

有些朋友说打包的exe工具很大,因为在打包时,会把可能依赖到的库全部打进去,经过我多年验证,你可以单独创建一个venv,只安装你需要的几个模块这样打包会很小。对比下图是我使用主环境和虚拟环境打包后的大小,可见一斑啊!

好了,今天的文章就到这里,代码太长就不在文章中占篇幅了,如需获取代码和exe工具,可以在公众号清风后台回复:csdn,即可获取代码下载链接。

ps:求助,最近没更新因为电脑坏了,周末打算去买个笔记本,个人不喜欢mac,目前备选列表如下:

华为 14

pro

惠普战66

联想小新air 14

戴尔灵越5000 都是十代i7 16G内存 /350 的配置。

平时不玩游戏比较关心的是笔记本的质量和售后,大家有好的意见欢迎下方留言指点迷津,谢谢。

tags: csdn

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了