爬虫实战 | *敏*感*词*教你批量抓取百度指数
优采云 发布时间: 2022-06-27 05:19爬虫实战 | *敏*感*词*教你批量抓取百度指数
皮卡丘联合爬虫业界大牛FastGets整理,介绍python爬虫基础知识、大牛多年反爬经验,有难度网站抓取实战、爬虫系统架构设计、安卓app逆向分析。帮助小白入门,初级工程师成为资深工程师,大神回顾。大家有任何问题可留言交流,欢迎转发分享。
一、百度指数链接分析
百度指数是需要先登陆的,我们先登陆,然后搜索“爬虫”这个词,如下图,可以看到百度指数的曲线图。
我们看爬虫的百度指数链接
%C5%C0%B3%E6
这其实是“爬虫”经过gbk编码,然后在经过编码后得到,如下代码:
二、百度指数登陆
在我们没有登陆百度的情况下,在浏览器中打开链接
%C5%C0%B3%E6
会弹出叫我们登陆的表单,如下图:
登陆次数多了,会出现验证码:
读者想了解百度登陆的详细过程,可以参考上期文章【】,里面详细介绍了百度登陆过程。
由于百度指数需要登陆后才能访问,所以我们在打开每个百度指数页面后,首先需要判断是否需要登陆,需要的话,我们进行登陆操作,下面是登陆过程代码,代码旁边附有注释。
在批量抓取时,百度指数存在较为严重的反爬,我们在登陆后,访问过多的百度指数页面时,也会出现验证码,因此我们在打开页面后,需要先判断是否有验证码,有的话,需要先识别,代码如下:
三、获取百度指数
百度指数实际值,是图片悬浮的方式展示,获取较为麻烦,如下图:
百度指数的曲线画在图上,其必定有每个点在图上的坐标值,我们根据图上的坐标位置,以及纵坐标的数字,可以大致计算出每天的百度指数,如下图:
我们需要先从这些数字中解析出每个点在图上的位置值,然后识别出纵坐标数字,即可大概计算出每个点的实际值。下面代码:打开“爬虫”的百度指数页面后,先判断是否需要登陆,是否需要验证,都通过后,我们再来解析和识别。
下面是纵坐标识别的函数,笔者这里用到了pytesseract 包,读者如果不熟悉,可以百度下安装方法和简单的使用方法。
下面是百度指数抓取程序入口:
读者可以按照笔者的注释,自己写一遍代码,即可学会百度指数抓取*敏*感*词*,完整的代码读者也可以到这里查看:
如果读者想研究百度指数抓取的其他方法,可以到github上去搜索baiduindx,然后去看看这些人写的代码,如下图:
【往期精彩文章】
喜欢的话,点个赞呗!