文库搜索⚓︎
百度文库搜索,获取文档更加便捷
BaiduSpider.search_wenku(
self: BaiduSpider,
query: str,
pn: int = 1,
scope: str = "all",
format: str = "all",
time: str = "all",
page_range: Union[Tuple[int], str] = "all",
sort_by: str = "relation",
proxies: Union[dict, None] = None,
) -> WenkuResult:
参数⚓︎
- query
str
: 要查询文库搜索的字符串 - pn
int
: 要爬取的页码,默认为1
,可选 - scope
str
: 搜索结果筛选范围,默认为"all"
,可选 - format
str
: 搜索结果格式筛选方式,默认为"all"
,可选 - time
str
: 搜索结果时间筛选方式,默认为"all"
,可选 - page_range
Union[Tuple[int], str]
,搜索结果页码范围,默认为"all
,可选 - sort_by
str
: 搜索结果排序方式,默认为"relation"
,可选 - proxies
Union[dict, None]
: 代理配置,默认为None
,可选
实例⚓︎
基本的调用⚓︎
from baiduspider import BaiduSpider
from pprint import pprint
spider = BaiduSpider()
pprint(spider.search_wenku(query="要搜索的关键词").plain)
指定页码⚓︎
from baiduspider import BaiduSpider
from pprint import pprint
pprint(BaiduSpider().search_wenku("要搜索的关键词", pn=2).plain)
筛选文档来源⚓︎
这四个参数可以让你搜到所需要的来源。下面我们来一一介绍它们的用法与含义。
当然,除了单一地使用,你也可以组合这些筛选一起使用。
按范围筛选⚓︎
正如百度文库搜索本身所提供的一样,BaiduSpider也提供这项筛选。它的选项分别为"all"
(显示全部,即不筛选,默认)、"vip-only"
(VIP专享)、"vip-free"
(VIP免费)、"free"
(免费)和"high-quality"
(精品)。参数scope
负责这项功能。
值得一提的是,当使用"free"
作为筛选的时候,需要额外提供 Cookie。
from baiduspider import BaiduSpider
from pprint import pprint
pprint(BaiduSpider().search_wenku("要搜索的关键词", scope="vip-only").plain) # 仅显示VIP专享的文档
按格式筛选⚓︎
目前 BaiduSpider 支持六种格式可供筛选,分别为["all", "doc", "ppt", "txt", "pdf", "xls"]
。其中,"all"
的含义为不筛选格式(默认),其余含义如字面。
你可以通过设置format
参数来改变筛选。
from baiduspider import BaiduSpider
from pprint import pprint
pprint(BaiduSpider().search_wenku("要搜索的关键词", format="ppt").plain) # 仅显示PPT格式的文档
按时间筛选⚓︎
使用time
筛选参数,你可以进行以年为单位的时间筛选。选项分别为"all"
(不筛选,默认)、"this-year"
(今年)、"last-year"
(去年)和"previous-years"
(前年及以前)。
from baiduspider import BaiduSpider
from pprint import pprint
pprint(BaiduSpider().search_wenku("要搜索的关键词", time="last-year").plain) # 仅显示去年发布的文档
按页数筛选⚓︎
你可以使用page_range
参数来通过页数筛选文档。page_range
的可选值为["all", Tuple[start: int, end: int]]
。其中,"all"
的含义为不通过页数进行筛选(默认)。另一个元组选项则是筛选区间。
例如,我们可以使用元组(1, 10)
表示仅筛选页数为1 ~ 10页的文档。元组的第一个参数是区间开始页码,第二个参数则是区间结束的页码。
from baiduspider import BaiduSpider
from pprint import pprint
pprint(BaiduSpider().search_wenku("要搜索的关键词", page_range=(5, 19)).plain) # 仅显示页数为5页到19页的文档
搜索结果排序方式⚓︎
对于文库搜索,BaiduSpider 提供四种不同的排序方式,分别为:按相关性、按时间、按下载量和按评分。你可以通过更改sort_by
参数的值来修改排序方式。
sort_by
参数接受四种字符串的值:["relation", "time", "downloads", "score"]
。其含义分别如上述。
from baiduspider import BaiduSpider
from pprint import pprint
pprint(BaiduSpider().search_wenku("要搜索的关键词", sort_by="downloads").plain) # 按下载量排序
返回值⚓︎
字典返回值⚓︎
详见 API 文档。
模型结果返回值⚓︎
详见 API 文档。