一个使用Python编写的轻量级百度爬虫
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个使用 Python 编写的轻量级百度爬虫——BaiduSpider。
BaiduSpider 是一个使用 Python 编写的轻量级百度爬虫。它基于 Requests 和 BeautifulSoup 构建,并提供了易用的 API 接口以及完善的类型注释,提升开发者的使用体验。
功能特性节省提取数据的时间,对于类似深度学习项目的数据模型建立与训练起到了良好的帮助 精准、快速地提取百度搜索结果,并删除广告 搜索结果大而全,支持多种搜索类型,支持多种返回类型 提供了简洁易用的 API
安装
依赖环境: Python 3.6+
使用pip安装: $ pip install baiduspider
从 GitHub 手动安装: $ git clone git@github.com:BaiduSpider/BaiduSpider.git # ... $ python setup.py install
示例
百度网页搜索,也可以作为综合搜索使用。 BaiduSpider.search_web( self: BaiduSpider, query: str, pn: int = 1, exclude: list = [], proxies: Union[dict, None] = None, ) -> WebResult
参数 query str:要查询网页搜索的字符串 pn int:要爬取的页码,默认为1,可选 exclude dict:要屏蔽的子部件列表,可选 time str | List[datetime.datetime]: 搜索时间范围 proxies Union[dict, None]: 代理配置,默认为None,可选
实例
基本的调用:这是一个最基本的参数—— query 。它用于传递搜索词(字符串类型)。 # 导入BaiduSpider from baiduspider import BaiduSpider from pprint import pprint # 实例化BaiduSpider spider = BaiduSpider() # 搜索网页 pprint(spider.search_web(query="要搜索的关键词").plain)
指定页码:你可以通过设置 pn 参数来更改 BaiduSpider 所获取的页码。 from baiduspider import BaiduSpider from pprint import pprint spider = BaiduSpider() # 搜索网页,并传入页码参数(此处为第二页) pprint(spider.search_web(query="要搜索的关键词", pn=2).plain)
注意:传入页码参数的时候一定要小心,务必不要传入过大的页码,否则百度搜索会自动跳转回第一页。
屏蔽特定的搜索结果:这个参数可以为你提供很大的便捷。通过设置 exclude 列表,你可以屏蔽某些特定的网页搜索子搜索结果来提高解析速度。 from baiduspider import BaiduSpider from pprint import pprint spider = BaiduSpider() # 搜索网页,并传入要屏蔽的结果 # 在本样例中,屏蔽了贴吧和博客 pprint(spider.search_web(query="要搜索的关键词", exclude=["tieba", "blog"]).plain)
exclude 的值可以包含:["news", "video", "baike", "tieba", "blog", "gitee", "related", "calc"],分别表示:资讯,视频,百科,贴吧,博客,Gitee代码仓库,相关搜索,计算。 exclude 的值也可以是["all"],表示屏蔽除了普通搜索结果外的所有搜索结果。实例: from baiduspider import BaiduSpider from pprint import pprint spider = BaiduSpider() # 搜索网页,并传入要屏蔽的结果 # 在本样例中,屏蔽了所有非普通的搜索结果 pprint(spider.search_web(query="要搜索的关键词", exclude=["all"]).plain)
如果 exclude 中包含all且还有其他参数,那么将按照只有all的方式过滤搜索结果。
按时间筛选: time 参数能够实现更精准的搜索。 time 的取值可以是一个字符串或者是一个由 datetime.datetime 组成的元组。比如,使用字符串形式: from baiduspider import BaiduSpider from pprint import pprint spider = BaiduSpider() # 搜索网页,仅显示时间段内的搜索结果 # 在本样例中,筛选后仅显示一周内的搜索结果 pprint(spider.search_web(query="要搜索的关键词", time="week").plain)
此功能使用百度内置的搜索时间筛选器筛选结果,并非使用程序筛选。在这个样例中, time 的值是"week",代表筛选一周内的搜索结果。 time 的可选值如下:["day", "week", "month", "year"]。分别表示:一天内、一周内、一月内、一年内。除此以外,BaiduSpider 还支持自定义时间段。例如: from baiduspider import BaiduSpider from pprint import pprint from datetime import datetime spider = BaiduSpider() # 在本样例中,筛选后仅显示2020.1.5 - 2020.4.9的搜索结果 pprint(spider.search_web(query="要搜索的关键词", time=(datetime(2020, 1, 5), datetime(2020, 4, 9))).plain)
在这个样例中, time 的值是一个元组(tuple )。元组的第一个值是起始时间,第二个值是结束时间。BaiduSpider会把他们都转化成 time.time() 形式的浮点数(然后仅保留整数),所以你也可以将 datetime 替换为一个整数。
—END—
此项目使用GPL3.0开源协议,更多功能大家可自行前往阅读。
开源地址:https://github.com/BaiduSpider/BaiduSpider
减脂90自制网红饮品低脂版,多款破壁机美颜养生食谱分享艾维巴蒂,我是M慢性子。最近喜XX雪的茶的网红饮品,不管是在网络还是实际生活中都非常的火。实际体验,除了炒作的成分外,不管食材还是口味也确实是好,就是价格实在太肉疼。同时集美们天天
梅雨季节即将来临,除湿机怎么选?主流除湿机横评浦力适VS美的梅雨季节即将来临,除湿机的作为专业的除湿设备,选购时都要注意什么呢?以及相比于空调的除湿,除湿机还有必要吗?在本文你都能找到答案。同时分享我在用的两款主流中高端除湿机的使用效果与差
烧烤真的能无烟吗?是智商税?无烟原理分析!海氏无烟烧烤炉体验美食让家人重聚在人人都抱着手机的时代,家人们聚在一起的时间越来越少,什么能让家人们再次聚集在一起?没啥是一顿小烧烤解决不了的。一家人围在桌旁,吃着小烧烤,喝着小啤酒,就是最简单的幸
按摩仪选购指南,四款颈部按摩仪横评,差异竟然如此大哈喽,我是M慢性子,马上618啦,各种促销接踵而至,也是年中孝敬父母和慰劳自己的好时候,不知道大家有没有自己计划购入的清单呢?相信现在屏幕前的各位,不管是自己,还是父母,都有长期使
双口电磁炉怎么选?不仅仅是11,米家双口电磁炉体验大家好,我是M慢性子,一个厨房器材党,今年在厨房电器领域有一个类型的新品可谓非常火热,已经有越来越多的品牌涉足双口电磁炉,双口电磁炉不仅仅是两个电磁炉11,同样我们还可以得到一个巨
判断空调故障的实用方法,所有空调设备通用空调维修方法需要检查的部分高压低压平衡压排气吸气主机温度散热器吸热器电流电压节流阀过滤装置。判断故障出现的严重程度,因为电器系统循环系统制冷系统都是相互影响的,要综合实地判断,里内
水冷中央空调冬天的防冻措施及方法水冷中央空调在冬季如何防冻与保护处理,尤其在北方的冬天,温度已是零下的天气里,如写字楼,大楼大厦,酒店宾馆等场所使用的大型冷水机组如何预防被冻裂的情况。下面我们就来看看如何操作。螺
中央空调加氟或补氟的步骤及方法大型中央空调加氟的数量一般都比较多,制冷剂的品种也比较多,有些小型的中央空调一次可以加100KG左右。大型的中央空调有些可以加300KG到500KG左右,具体加多少,一般可以根据铭
家用中央空调和普通空调的区别及特点中央空调市场趋势中央空调是近几年的产物,而且越来越流行,被大多用户接纳采用,这跟经济的发展带来的社会经利也有很大的联系,生活水平的提高,这也是一种对生活的表现。智能多联机组对于在大
中央空调基本维修知识中央空调一般故障分析中央空调由制冷系统和电器系统组成,运行情况与工作条件有很大的关系,因此对中央空调的判断和分析应该全面了解。电器系统故障1。一种为外机原因,一般是电源问题,另一种
中央空调更换压缩机的步骤及方法对于一般用户而言,可能一辈子空调都不会坏一次,但能于维修工来说,基本天天需要维修各种空调或更换压缩机。这就相当于医生对病人的关系,但对于大多数维修工来说,更换压缩时,他们大多只是把