[TOC]
baike
是一个百度百科search bot。
在百度百科上搜索词条并返回匹配条目的简介,图片等。
#pip install baike
想要直接在百度百科搜索一个词条,可以从以下的方法中二选一:
>>>from baike import Baike
>>>ret=Baike('你要搜的内容').query()
#返回结果保存在ret里
>>>from baike import getBaike
>>>ret=getBaike('你要搜的内容')
#同上
#也可以直接print(getBaike('你要搜的内容'))来显示
-
通过指定变量
no
为0
,你可以显示多义词的义项列表:>>>print(getBaike('Python',no=0)) Python 1:计算机程序设计语言 2:英文单词
这个值默认为
1
,此时默认显示第一个搜索命中结果的内容简介。 -
指定变量
no
为非0整数,你可以显示第no
个义项的内容简介:>>>print(getBaike('Python',no=2)) Python(英文单词) python发音:英 [ˈpaɪθən] 美 [ˈpaɪθɑ:n]中文释义:巨蛇,大蟒复数形式:pythons
如果
no
>义项数,则会显示最后一个义项。 如果no
是负数,则会从后往前计数。类似的,如果no
<(-义项数),则会显示第一个义项。 -
在内部实现中,
no
实际上是一个由两个元素组成的列表。第一个元素为一个整数,即上文中的“义项序号”;第二个元素为一个整数列表或空列表,指出需要显示的义项中的“段落序号”。如:>>>print(getBaike('Python',no=[1,[1]])) Python(计算机程序设计语言) 1.Python简介及应用领域 Python是一种解释型脚本语言,可以应用于以下领域:
“段落序号”可以指定多个,将按顺序显示:
>>>print(getBaike('Python',no=[1,[0,1,2]])) Python(计算机程序设计语言) Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断 更新和语言新功能的添加,越多被用于独立的、大型项目的开发。 1.Python简介及应用领域 Python是一种解释型脚本语言,可以应用于以下领域: 2.下载Python 在您开始之前,在你的计算机将需要Python,但您可能不需要下载它。首先检查(在同级目录下在命令行窗口输入python)有没有安装Python。如果你看到了一个Python解释器的响 应,那么就能在它的显示窗口中得到一个版本号。通常的版本都可以做到Python的向前兼容。 如果您需要安装, 您不妨下载最近稳定的版本。 就是那个以没有被标记作为alpha或Beta发行的最高的版本。目前最稳定的版本是Python3.0以上 如果你使用的操作系统是Windows:当前最稳定的Windows版本下载是"Python 3.8.3 for Windows" 如果你使用的是Mac,MacOS 10.2 (Jaguar), 10.3 (Panther) and 10.4 (Tiger)已经集成安装了Python,但是你大概需要安装最近通用的构架(build)。 对于Red Hat,安装python2和python2-devel包。 对于Debian,安装python2.5和python2.5-dev包。
请注意,
baike
不会对“段落序号”做任何检查,这意味着诸如getBaike("Python",no=[1,[0,0,0,3,2,1]])
等等重复值和逆序值是完全合法的。0号段落即为该义项的简介段落,
[0]
也是“段落序号”的默认值:>>>print(getBaike('Python',no=[1,[0]])) Python(计算机程序设计语言) Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断 更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
如果“段落序号”为空列表
[]
,那么将显示段落目录:>>>print(getBaike('Python',no=[1,[]])) Python(计算机程序设计语言) 【目录】 0简介 1Python简介及应用领域 2下载Python 3发展历程 4风格 5与MATLAB的对比 6设计定位 7执行 8基本语法 9帮助 10CGI 11特点 12应用 13工具功能 14标准库 15开发环境 16解释器 17著名应用 18库导入 19学习网站
在“段落序号”内部,一样可以使用负数来索引段落。
当“义项序号”为
0
时,“段落序号”将被忽略,但是仍然需要输入合法的值以避免报错。 -
指定变量
timeout
为正整数,你可以设定搜索的超时时间,单位为秒:>>>ret=getBaike('Python',timeout=1)
当搜索超时时,标准错误输出
stderr
会显示一条错误信息超时错误:
,紧接着是引发超时错误的网页链接。你可以重定向标准错误输出至文件来实现日志功能。该变量默认为
5
。请注意,每次搜索对应2~3个网页请求,而
timeout
值是对单个请求的时长所设的限制,因此一次搜索的总时长最长的花费可能会是timeout
的2~3倍。 -
如果搜索没有结果,标准错误输出
stderr
会显示一条错误信息没有匹配的搜索结果:
,紧接着是没有搜索结果的关键字。类似的,你可以重定向标准错误输出至文件来实现日志功能。 -
指定变量
pic
为True
,你可以自动下载这个词条的概要图:>>>ret=getBaike('Python',pic=True)
如果该词条有概要图,那么就会下载到当前目录下,文件名格式为"<搜索关键词>_<义项序号>_<12位时间戳>.<图片格式>"。默认图片格式是jpg。
该变量默认为
False
。 -
当变量的值有误时,标准错误输出
stderr
会显示一条错误信息参数不正确:
,紧接着是有误的参数名。要想更正,可以通过setting()
方法设置正确的参数值,如果设置正确那么setting()
将返回0
,错误则是非0
值。每个
Baike
搜索对象的设置都是独立的。如果希望将搜索设置设为默认值(如no
参数等),可以使用reset()
方法。如果使用
getBaike()
进行搜索,因为每次搜索都是独立的,因此每次搜索都会将从默认值开始。
- 无法显示部分表格/列表
需要requests
和lxml
。若安装失败可以手动执行:
#pip install requests lxml
在Python 3.6.9, 3.7.1, 3.9.0 上正常运行。
在Windows10 1909 20H4, Ubuntu 18.04 LTS上正常运行。
在Termux上安装lxml
可能存在问题,请尝试先安装Cython
或先安装对应发行版的库文件。
baike
仍处于pre-Alpha阶段,建议随时使用最新版以减少bug。
baike
只有收录/分类/组织的功能,对显示的信息不负任何法律责任,也不享有著作权,若信息源的信息发生变更,baike没有能力随时更新内容,因此使用者须自行对提供的信息的真实性、进行判断。