[TOC]
# 百度百科bot
### 简介
搜索百度百科并返回匹配条目的简介,图片等。
------
### 安装
```shell
#pip install baike
```
------
### 简单上手
想要直接在百度百科搜索一个词条,可以从以下的方法中二选一:
1.
```python
>>>from baike import Baike
>>>ret=Baike('你要搜的内容').query()
#返回结果保存在ret里
```
2.
```python
>>>from baike import getBaike
>>>ret=getBaike('你要搜的内容')
#同上
#也可以直接print(getBaike('你要搜的内容'))直接显示
```
------
### 更多功能
1. 通过指定变量`no`为`0`,你可以显示多义词的义项列表:
```python
>>>print(getBaike('Python',no=0))
Python
1:计算机程序设计语言
2:英文单词
```
该变量默认为`1`,此时默认显示第一个搜索命中结果的内容简介。
2. 指定变量`no`为非0整数,你可以显示第`no`个义项的内容简介:
```Python
>>>print(getBaike('Python',no=2))
Python(英文单词)
python发音:英 [ˈpaɪθən] 美 [ˈpaɪθɑ:n]中文释义:巨蛇,大蟒复数形式:pythons
```
如果`no`>义项数,则会显示最后一个义项。
如果`no`是负数,则会从后往前计数。类似的,如果`no`<(-义项数),则会显示第一个义项。
3. `no`实际上是一个两个元素的列表,第一个元素为一个整数,表示“义项序号”;第二个元素为一个整数列表或空列表,指出需要显示的义项中的“段落序号”。如:
```Python
>>>print(getBaike('Python',[1,[1]]))
Python(计算机程序设计语言)
1.Python简介及应用领域
Python是一种解释型脚本语言,可以应用于以下领域:
```
“段落序号”可以指定多个,将按顺序显示:
```Python
>>>print(getBaike('Python',[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包。
```
0号段落即为该义项的简介段落,`[0]`也是“段落列表”的默认值:
```python
>>>print(getBaike('Python',[1,[0]]))
Python(计算机程序设计语言)
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断
更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
```
如果“段落序号”为空列表`[]`,那么将显示段落目录:
```Python
>>>print(getBaike('Python',[1,[]]))
Python(计算机程序设计语言)
【目录】
0简介
1Python简介及应用领域
2下载Python
3发展历程
4风格
5与MATLAB的对比
6设计定位
7执行
8基本语法
9帮助
10CGI
11特点
12应用
13工具功能
14标准库
15开发环境
16解释器
17著名应用
18库导入
19学习网站
```
在“段落列表”内部,一样可以使用负数来索引段落。
4. 指定变量`timeout`为正整数,你可以设定搜索的超时时间,单位为秒:
```Python
>>>print(getBaike('Python',timeout=1))
```
当搜索超时时,标准错误输出`stderr`会显示一条错误信息`超时错误:`,紧接着是引发超时错误的网页链接。
你可以重定向标准错误输出至文件来实现日志功能。该变量默认为`5`。
5. 如果搜索没有结果,标准错误输出`stderr`会显示一条错误信息`没有匹配的搜索结果:`,紧接着是没有搜索结果的关键字。类似的,你可以重定向标准错误输出至文件来实现日志功能。
6. 指定变量`pic`为`True`,你可以自动下载这个词条的概要图:
```Python
>>>print(getBaike('Python',pic=True))
```
如果该词条有概要图,那么就会下载到当前目录下,文件名格式为"(词条名)_(义项序号).(图片格式)"。
该变量默认为`False`。
7. 当变量的值有误时,标准错误输出`stderr`会显示一条错误信息`参数不正确:`,紧接着是有误的参数名。要想更正,可以通过`setting()`方法设置正确的参数值,如果设置正确那么`setting()`将返回`0`,错误则是非0值。如果使用`getBaike()`进行搜索,每次搜索前都会将之前的设置重置为默认值。
------
### 已知问题
- [ ] 无法显示部分表格/列表
------
### 依赖
需要requests和lxml。若安装失败可以手动执行:
```python
pip install requests lxml
```
Python 3.6.9 3.7.1 正常运行。在Termux上安装lxml可能存在问题。
------
### 声明
baike只有收录/分类/组织的功能,对显示的信息**不**负任何法律责任,且**不**享有著作权,若信息源的信息发生变更,baike**没有**能力随时更新内容,因此使用者须自行对提供的信息进行判断。