通过关键词采集文章采集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开源许可,更*敏*感*词*可自行阅读。

  开源地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线