通过关键词采集文章采集api(【开源精选】Github、Gitee等开源社区中优质项目)
优采云 发布时间: 2022-03-17 14:27通过关键词采集文章采集api(【开源精选】Github、Gitee等开源社区中优质项目)
《开源精选》是我们在Github、Gitee等开源社区分享优质项目的专栏,内容包括技术、学习、实用和各种有趣的内容。本期推荐使用Python编写的轻量级百度爬虫BaiduSpider。
百度蜘蛛是一个用 Python 编写的轻量级百度爬虫。它基于Requests和BeautifulSoup,提供易用的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
范围
例子
基本调用:这是最基本的参数——查询。它用于传递搜索词(字符串类型)。
# 导入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)
注意:传入页码参数时要小心,一定不要传入太大的页码,否则百度搜索会自动跳回第一页。
屏蔽特定搜索结果:该参数可以为您提供极大的便利。通过设置排除列表,可以屏蔽一些特定的网页搜索子搜索结果,提高解析速度。
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"],分别为:news, video, encyclopedia, < @贴吧,博客,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 的值可以是字符串或 datetime.datetime 的元组。例如,使用字符串形式:
from baiduspider import BaiduSpider
from pprint import pprint
spider = BaiduSpider()
# 搜索网页,仅显示时间段内的搜索结果
# 在本样例中,筛选后仅显示一周内的搜索结果
pprint(spider.search_web(query="要搜索的关键词", time="week").plain)
此功能使用百度内置的搜索时间过滤器来过滤结果,而不是以编程方式。在本例中,time 的值为“week”,表示过滤一周内的搜索结果。时间的可选值如下:["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)
在这个例子中,时间值是一个元组。元组的第一个值是开始时间,第二个值是结束时间。BaiduSpider 会将它们全部转换为 time.time() 形式的浮点数(然后只保留整数),因此您也可以将 datetime 替换为整数。
-结尾-
本项目使用GPL3.0开源许可,更*敏*感*词*可自行阅读。
开源地址: