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

第七十二期:爬虫爬的好,牢饭吃到饱? 前几天分享的一篇《只因写了一段爬虫,公司200多人被抓!》相信大家看了后都会发问,我只是个写爬虫的,跟我有什么关系?到底什么样的爬虫才不犯法?今天这篇会解答你所有的疑问。 作者:技术领导力 前几天分享的一篇爬虫被抓相信大家看了后都会发问,我只是个写爬虫的,跟我有什么关系?到底什么样的爬虫才不犯法?今天这篇会解答你所有的疑问。 图片来自 Pexels “你交代一下,总共抓了多少数据,在哪... 阅读详情

小姐姐的请求

不知道大家是否关注过,我的文章经常在csdn的华为云博客中进行转载,没办法人缘好,认识她们运营的小姐姐啊!但是前几天她和我说到了一个自己的困扰。领导让她每周统计一次华为云发布的所有文章数据,包括类型(原创/转载)、标题、链接、访问量、评论数。听起来就够麻烦了,等我登陆csdn看到他们居然收录了1600多篇文章的时候,更懵逼了...小姐姐问Python是否能实现这种操作,她打算学学。刚好上周末在家看了下csdn的网站结构,觉得蛮简单的梳理了下思路,写了些片段的代码。今天,小姐姐突然说要请我喝下午茶,原来是领导又催他统计csdn数据。

 

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

 
收获一杯纳瑞冰

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

优快云网站url

首先,每个用户都有一个自己的主页,比如我的优快云地址:https://blog.youkuaiyun.com/BreezePython

[图片上传失败...(image-7dbb95-1592502969554)]
](https://upload-images.jianshu.io/upload_images/5847426-dc89c6037ca04414.png)
其实平时都是在简书上写文章的,然后csdn使用博客搬家功能自动从简书同步。个人还是比较喜欢简书的书写风格,但没办法谁让小姐姐他们领导要搞csdn呢。盘它就完了!
进入首页后,我们拖动到底部会看到第几页第几页的数字,我们随便选择后面的页码,跳转后我们的url变成了下面这样:
https://blog.youkuaiyun.com/BreezePython/article/list/2

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

 
爬虫结束判断

html解析

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

 
优快云网页结构分析
 

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

<a href="https://blog.youkuaiyun.com/BreezePython/article/details/101475346" target="_blank">
        <span class="article-type type-1 float-none">原创</span>
        “     Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署     ”
</a>

往常我们获取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了!

python保存excel

python操作excel的库很多,之前专门总结过一波:
Python操作Excel 模块,你猜哪家强?
个人比较中意的是openpyxl,具体的操作就不在这赘述了,来看看最后的统计效果:

数据保存excel

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

 

打包为可执行文件

既然喝了小姐姐的下午茶,总不能每周统计的时候,都敲诈一波小姐姐吧。可是代码发给她,她一不会python、二没有环境,这可如何是好?那么,我们为什么不尝试去把代码打包成windows下的可执行文件呢?又到了我最喜欢的Python打包模块Pyinstaller出场的时间了,不了解的看这里:
Python打包工具--Pyinstaller详细介绍
既然我们只要随便输入一个用户的首页url,就能全篇爬取他的文章内容,我们就来做一个简单的GUI功能吧:

exe界面小工具

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

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

 

好了,今天的文章就到这里,代码太长就不在文章中占篇幅了,如需获取代码和exe工具,可以再公众号清风Python后台回复:csdn,即可获取代码下载链接。
ps:最近没更新,因为电脑坏了,周末打算去买个笔记本,个人不喜欢mac,目前备选列表如下:

  1. 华为matebook 14
  2. magicbook pro
  3. 惠普战66
  4. 联想小新air 14
  5. 戴尔灵越5000
    都是十代i7 16G内存 max250/350 512ssd的配置,平时不玩游戏比较关心的是笔记本的质量和售后,大家有好的意见欢迎下方留言指点迷津,谢谢。

The End

期待你关注我的公众号清风Python,如果你觉得不错,希望能动动手指转发给你身边的朋友们。
我的github地址:https://github.com/BreezePython

麒麟V10 ARM环境离线部署MySQL:从依赖缺失到服务自启的完整避坑指南 本文详细介绍了在麒麟V10 ARM环境下离线部署MySQL的完整流程,包括依赖缺失解决方案、目录配置、服务自启设置及性能调优。特别针对国产操作系统和ARM架构的兼容性问题,提供了实用的避坑指南和优化建议,帮助用户高效完成MySQL部署与维护。 阅读详情

相关推荐

Omnibox 2.11 NAS部署指南:家庭影音中枢的轻量化落地实践

家庭影音平台本质是本地化内容调度中枢,其核心在于聚合NAS媒体库、统一管理直播/IPTV/音频/视频等多源内容,并通过智能元数据匹配与硬解加速实现零门槛播放体验。技术原理上依赖Java轻量Web容器(Jetty)、SQLite嵌入式数据库双缓存架构,以及宿主机FFmpeg动态链接与HTTP/2直播代理治理能力。该方案显著降低4K播放卡顿、EPG加载失败、海报缺失等高频问题,适用于群晖、飞牛、绿联等主流NAS设备,尤其适配ARM64芯片与Realtek网卡等国产硬件生态。本文聚焦Omnibox 2.11在真实

weixin_30846347的博客 471

爬虫写得好,牢饭吃到饱?

先说一条新闻,一家专注大数据的数据服务提供商公司巧达科技,因为大量使用爬虫访问其他公司接口获取数据,整个公司被抓,最后不光管理者,干活的程序员也被抓了。很多学python的同学都接触过爬虫,即便是没接触过应该也听过,看到这种新闻你会不会心里也发虚,担心自己哪天因为不小心写了什么爬虫锒铛入狱?这么本期视频,我们就来讲一下爬虫到底违不违法,以免你好好的吃着泡面写着代码,第二天...

寒羽的博客 4184

用Python玩转LQR控制:3行核心代码实现倒立摆稳定控制(附Jupyter Notebook)

本文通过Python实战演示了如何使用LQR算法实现倒立摆的稳定控制。文章以直观方式解释LQR原理,提供从系统建模、核心代码求解到参数调优的完整流程,并附有可运行的Jupyter Notebook代码。重点介绍了如何利用SciPy库快速计算最优反馈增益,并通过仿真验证控制效果,为运动控制实践提供了即学即用的指南。

weixin_29311017的博客 83

当我用Python写了个抖音自动点赞脚本,直接接单赚到手软!

① Python所有方向的学习路线图,清楚各个方向要学什么东西② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论④ 20款主流手游迫解 爬虫手游逆行迫解教程包⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解⑦ 超300本Python电子好书,从入门到高阶应有尽有⑧ 华为出品独家Python漫画教程,手机也能学习。

2301_82275412的博客 3339

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 997

OAI数据集申请下载全攻略:从个人NDA账号注册到数据包下载的保姆级避坑指南

本文提供OAI数据集申请下载的完整指南,涵盖从个人NDA账号注册到数据包下载的全流程。重点解析login.gov验证陷阱、浏览器兼容性问题、NDA权限申请技巧及nda-tools高效使用方法,帮助医学影像研究者避开常见技术障碍,快速获取全球骨关节炎研究数据库OAI的宝贵数据资源。

weixin_28698059的博客 752

爬虫学得好,牢饭吃到饱?官司打了 5 年终有定论!

????????关注后回复“进群”,拉你进程序员交流群????????来源:InfoQ 互联网爬虫战争永无休止。 这算得上是爬虫斗争历史上具有里程碑意义的一个裁决。最近,美国法院裁定,数据分析公司 HiQ 控诉 LinkedIn 案维持原判,并且认定从公共网站收集个人资料完全合法。LinkedIn 是微软旗下的职业社交平台,用户可以在 LinkedIn 网站建立个人档案,包括教育背景、工...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 1722

阿里云CDN HTTPS 证书配置流程

可以使用HTTPS方式访问资源,如果浏览器中URL旁边出现锁的HTTPS标识,表示HTTPS安全加速已生效。: 证书配置完成后,需要留意证书过期时间并在证书过期前手动配置新的证书。注意 ⚠️ 一定是需要复制 以下标识之间的内容。如果已在阿里云数字证书管理服务中购买了证书,请选择。,该证书将在阿里云数字证书管理服务中保存。如果使用第三方服务商签发的证书,请选择。第四步,在指定域名的左侧导航栏,单击。第二步,在左侧导航栏,单击。开关,并配置证书相关参数。页面,找到目标域名,单击。中选择已购买的证书。

w风雨无阻w的专栏 2209

爬虫玩得好,牢饭吃到饱?这3条底线千万不能碰!

导读:合法合规、谨慎小心地应用爬虫技术。点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤参差连曲陌,迢递送斜晖。作者:郭斌 刘思聪 於志文来源:大数据DT(ID:hzdashuju)数据爬取技术一向是数据公司获取数据的高效途径之一,但严格意义上爬取行为本身并不是完全合法合规的,按我国目前的法律法规及司法判例...

pdcfighting的博客 1102

PRD撰写效率翻倍秘籍:我是如何用大模型+飞书文档搭建自动化工作流的

本文分享了如何利用大模型与飞书文档构建自动化工作流,以大幅提升PRD撰写效率。通过结构化需求输入、设计模块化提示词模板,并借助自动化脚本桥接数据与文档,产品经理可将繁琐的文档撰写工作自动化,从而将精力聚焦于产品战略与用户洞察。

weixin_28520495的博客 405

qiankun 主子应用部署教程(Nginx 小白版)

本地开发:不用 Nginx,直接localhost:端口即可。本地模拟线上:用hosts + Nginx + 自定义域名,效果和生产接近。线上部署主应用只要配置 history 模式子应用必须支持 CORS + history + 缓存能跑是因为默认 server 兜底,但推荐写真实域名。主应用 vs 子应用的 Nginx 配置区别为什么本地和线上表现不一样history 模式 + 跨域的最佳实践。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 999

怎么才能避免爬虫从入门到入狱?

1. 侵犯公民个人信息罪《刑法》修正案(九)中将刑法第二百五十三条进行了修订,明确规定违反国家有关规定,向他人出售或者提供公民个人信息,情节严重的,构成犯罪;在未经用户许可的情况下,非法获取用户的个人信息,情节严重的也将构成“侵犯公民个人信息罪”。2.非法获取计算机信息系统数据罪根据《中华人民共和国刑法》第二百八十五条规定,非法获取计算机信息系统数据、非法控制计算机信息系统罪。

m0_59236127的博客 631

JavaSwing_4.2: JDialog、JOptionPane(对话框)

JDialog,对话框。使用 JDialog 类可以创建自定义有的对话框,或者调用 JOptionPane 中的多个静态方法快速创建各种标准的对话框。JOptionPane是 JavaSwing 内部已实现好的,以静态方法的形式提供调用,能够快速方便的弹出要求用户提供值或向其发出通知的标准对话框。

谢TS的博客 7万+

爬虫学得好监狱进的早_这款神器,堪称爬虫界的百宝箱!

大家好,我是小 G。会写爬虫,已成为广大开发者必备核心技能之一。不过,也有不少人因为不懂这块的法律法规,因技术使用不当吃了牢饭。因此,在技术圈内,有这么一句话广为流传:爬虫玩得好,牢饭吃到饱当然了,玩笑归玩笑,此前有细心的开发者在 GitHub 整理过一份文档,里面汇总记录了国内各类爬虫违法违规的案例,想搞爬虫之前,建议大家先把这个项目看一看:https://github.com/HiddenSt...

weixin_39920338的博客 697

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

爬虫学的好,牢饭吃的好 (入门篇)

哈喽,大家好哇,今天我又来了,由于上期文章上了热榜第二,很大程度激励了我,所以今天我又来了发布第二章了 ok,咱们接下来进入正题,上期给大家举例了一些爬虫例子,今天则开始入门,分享第一个项目,必应翻译 网站给你:http://cn.bing.com/translator/ 废话不多说 ,先用代码砸你 #!/usr/bin/python3 # -*- coding:utf-8 -*- """ @author: 六泽 @file: 必应翻译.py @time: 2021/3/23 9:37 @desc: "

泽的博客 2664

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python爬虫入门学习(一)合法爬取,拒绝牢饭。

python爬虫入门学习(一) 什么什爬虫 其实爬虫很好理解,互联网好比是一张大网,在这张大网上有无数的站点,站点中有很多的数据信息。这时如果你需要获取某个站点的大量的数据的时候,几千几百的数据量你可以人工,当热这时候下载数据的人已经开始骂娘了。你完全可以利用计算器去做,爬虫就是一个在互联网上的一个蜘蛛,它可以根据你的需求让它帮你,你就可以去花前月下了。。。。额。 注意:爬虫数据获取时必须合法,不...

Big_Body 1995

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

比Python更狠毒的一种爬虫!

爬虫:一段自动抓取互联网信息的程序,从互联网抓取对我们有价值的信息! 说起爬虫,可能你首先想起的就是Python,因为Python在爬虫方面是出了名的。但是希望你不要被误导,不只是Python可以写爬虫程序,其他高级语言也是可以的,比如Java。 那么,今天我们来讲一个比Python更狠毒的爬虫。它不是Java,也不是其他高级语言。这时候,你只需要默默的打开Kali Linux即可。我将开始新的...

专注前端技术,包括Web端、移动端、小程序、APP 4002

都是爬虫惹的祸

1、什么是爬虫? 不知道有多少人看过吴军博士的《数学之美》(第二版),如果没有看过,真心推荐你去看看。书中有很大一部分内容在讲搜索引擎和自然语言处理,那这和爬虫有什么关系呢? 其实还是有关系的,做个不恰当的比喻,其实搜索引擎也是一个大型的爬虫,只不过搜索引擎爬的是全网的“公开信息”,然后将网页的内容缓存并建立索引,以便用户进行搜索。 当然,这和大家理解的...

weixin_34149796的博客 728

爬虫学的好,牢饭吃得好(爬虫实例)

鉴于本人喜欢爬虫,最近看了一些爬虫的基础,几个爬虫入门实例。下面给你们看,大佬勿喷 主要知识点: 1.标题web是如何交互的 2.requests库的get、post函数的应用 3.response对象的相关函数,属性 4.python文件的打开,保存 好,接下来先安装requests库 在pycharm命令行输入 pip install requests 安装好了以后咱先爬个baidu首页 # 爬虫示例,爬取百度页面 import requests #导入爬虫的库,不然调用不了爬虫的函数 respo

泽的博客 4万+

Flask项目能打包为单个exe文件运行?知道原理后简直不要太简单!

python打包exe工具 Python打包工具主要有三种:py2exe、PyInstaller和cx_Freeze。虽然是三种工具,但是实现打包的方式都是大同小异。无非将Python运行所需的基础dll文件和源码依赖的模块筛选后聚合在一起,从而达到脱离环境单独运行的目的。但其中比较新奇的是它们居然可以将最终代码打包成单个文件去运行,简直不要太神奇。 清风常用的打包工具为pyinstaller,安...

清风Python 9045

这个七夕节,用Python为女友绘制一张爱心照片墙吧!

又是一年七夕时 今天是七夕节,中国传统的情人节。可预期到的是,估计有很多年轻的情侣们,已经为这个节日提前准备好久了吧?烂大街的套路无非就是送花、吃饭、电影院,看完电影找酒店。作为一个引爆消费的特别日子,程序猿们如何过节呢?今天公司博客举行了一个投票活动,七夕怎么过!结果多数人的投票都是闭门思过、一觉而过,难怪你们找不到女朋友啊!今天我就教你们如何不花钱,还能为心仪的她送去特别的礼物...

清风Python 2179

Python打包工具--Pyinstaller详细介绍

那年初相识 Pyinstaller这个库是我用pip下载的第一个模块。为什么?因为第一次接触python的时候,就是看到网上有人用Python编写的工具,可以直接运行在windows机器下。 这种脱离编译环境/虚拟机而单独运行的能力是我一直期待的,有人会问为什么不学c++? c++之父.png 因为,这老哥头发让我有些慌.... 然后我上网搜了一下python,当看到...

清风Python 2154

使用Python编写打字训练小程序

你眼中的程序猿 你眼中的程序猿 别人眼中的程序猿,是什么样子?打字如飞,各种炫酷的页面切换,一个个好似黑客般的网站破解。可现实呢? 二指禅的敲键盘,写一行代码,查半天百度...那么如何能让我们从外表上变得更像一个程序猿呢?当然是训练我们的打字速度了啊! 训练打字 很羡慕那些盲打速度炒鸡快的人,看起来就比较炫酷。但很多IT男打字速度并不快,甚至还有些二指禅的朋友们,太影...

清风Python 2014

Python开发GUI工具介绍,实战:将图片转化为素描画!

阳光普照好刺眼 7月华为云社区与csdn联合举办了黑马程序员的征文活动,由于规则简单(保证原创文章、内容为技术类为主、且文章篇幅1000字+即可),所以兴高采烈的参加了活动。 华为云社区活动 本来是抱着打酱油的心态参加活动,没想到今早看到获奖名单时,喜悦中却但这蛋蛋的忧伤... 获奖名单 一等奖一份、二等奖两份、阳光普照奖这个有有些刺眼了20份。想想20...

清风Python 1052

Python帮助万千程序员远离猝死悲剧

猝死引发的讨论 11月27日在《追我吧》第九期节目的录制过程中,当期参与嘉宾高以翔奔跑时突然减速倒地,节目现场医护人员第一时间展开救治,并紧急将其送往医院。经过两个多小时的全力抢救,医院最终宣布高以翔心源性猝死。 此不幸事件发生后,得到了社会各界密切关注。从影迷的惋惜,到对节目组的声讨,以及各种死因分析报道,网上新闻铺天盖地。然而,如果论猝死率最高的职业,不该是我们程序员吗? ...

清风Python 859
上一篇: 厌倦了if.else的你,能否考虑换一种选择结构?
下一篇: 谁说Python的shutil不支持7z解压缩,我来扩展它的功能!
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值