前言
有时候做数据统计的时候,常常很难大而全地抓取一个页面上所有的搜索结果,比如百度网页搜索,有时候会有视频栏,新闻栏,百科栏,等等。普通的爬虫都不能爬到这些,因为它们的结构跟普通搜索结果是完全不一样的。但是,BaiduSpider可以。
BaiduSpider是一个能够抓取百度各类搜索结果的爬虫,使用Python编写。它十分轻量,但是却能够准确地爬取各种类型复杂的结果,包括我们上面所说的视频,新闻,百科等。
目前实现的功能有百度网页搜索,百度图片搜索,百度知道搜索,百度视频搜索,百度资讯搜索,百度文库搜索,百度经验搜索和百度百科搜索。
除此以外,BaiduSpider还拥有多种不同的平台,目前有Python原生,Web UI和Web API,并且接下来还会推出BaiduSpider CLI,让你在命令行里完成搜索。
主要功能
当然,上面才是它的一点点功能,它最大的卖点在于,它所爬取的所有搜索结果都没有广告!有了它,你就再也不用去安装什么AdBlock,AdGuard啦!
广告屏蔽
基本功:Python原生
说了这么多,展示的都是网页端的结果,没有一个是能通过Python调用的。你可能会问,这玩意不是Python编写的吗?怎么没有提供Python API?
别急,接下来我们就来介绍它最常用的部分——BaiduSpider Python原生。
比如,我想要搜索关于git的结果,通过Python API调用就只有这么几行代码:
没错,BaiduSpider也发布了PyPI包!让我们看一下这段代码的运行结果如何:
可以看出,所有结果都已经分好了类(此处主要是普通的搜索结果),并且还有总计搜索结果数、总页数等附加信息。所有BaiduSpider方法的返回值都是一个dict,里面有results和total两个键,分别代表所有搜索结果(list),和总页数(int)。
最后
看到这里,你是不是已经想见识一下这个神器了呢?什么?多少钱?不,它是免费的!它不仅免费,而且还开源呢。不仅如此,它也提供详细的文档(部分还在撰写中),可以说是“配套齐全”啦。
GitHub地址:
https://github.com/BaiduSpider/BaiduSpider
文档地址:
https://baiduspider.github.io
文中提到的网页版地址(目前还在Alpha阶段,请适量使用,仅作为demo用途):https://baidus.netlify.app
视频可查看原文链接:一个能够屏蔽百度广告的爬虫:BaiduSpider