BaiduBaike搜索机器人

baike的Python项目详细描述


[TOC]

百度百科bot

PyPIPyPI - Python Version

简介

搜索百度百科并返回匹配条目的简介,图片等。


安装

#pip install baike

简单上手

想要直接在百度百科搜索一个词条,可以从以下的方法中二选一:

>>>frombaikeimportBaike>>>ret=Baike('你要搜的内容').query()#返回结果保存在ret里
>>>frombaikeimportgetBaike>>>ret=getBaike('你要搜的内容')#同上#也可以直接print(getBaike('你要搜的内容'))来显示

更多功能

  1. 通过指定变量no0,你可以显示多义词的义项列表:

    >>>print(getBaike('Python',no=0))Python1:计算机程序设计语言2:英文单词

    这个值默认为1,此时默认显示第一个搜索命中结果的内容简介。

  2. 指定变量no为非0整数,你可以显示第no个义项的内容简介:

    >>>print(getBaike('Python',no=2))Python英文单词python发音[ˈpaɪθən][ˈpaɪθɑ:n]中文释义巨蛇大蟒复数形式pythons

    如果no>义项数,则会显示最后一个义项。 如果no是负数,则会从后往前计数。类似的,如果no<(-义项数),则会显示第一个义项。

  3. 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"如果你使用的是MacMacOS10.2(Jaguar),10.3(Panther)and10.4(Tiger)已经集成安装了Python但是你大概需要安装最近通用的构架(build)对于RedHat安装python2和python2-devel包对于Debian安装python2.5和python2.5-dev包

    0号段落即为该义项的简介段落,[0]也是“段落序号”的默认值:

    >>>print(getBaike('Python',no=[1,[0]]))Python计算机程序设计语言Python是一种跨平台的计算机程序设计语言是一个高层次的结合了解释性编译性互动性和面向对象的脚本语言最初被设计用于编写自动化脚本(shell)随着版本的不断更新和语言新功能的添加越多被用于独立的大型项目的开发

    如果“段落序号”为空列表[],那么将显示段落目录:

    >>>print(getBaike('Python',no=[1,[]]))Python计算机程序设计语言目录0简介1Python简介及应用领域2下载Python3发展历程4风格5与MATLAB的对比6设计定位7执行8基本语法9帮助10CGI11特点12应用13工具功能14标准库15开发环境16解释器17著名应用18库导入19学习网站

    在“段落序号”内部,一样可以使用负数来索引段落。

    当“义项序号”为0时,“段落序号”将被忽略,但是仍然需要输入合法的值以避免报错。

  4. 指定变量timeout为正整数,你可以设定搜索的超时时间,单位为秒:

    >>>ret=getBaike('Python',timeout=1)

    当搜索超时时,标准错误输出stderr会显示一条错误信息超时错误:,紧接着是引发超时错误的网页链接。

    你可以重定向标准错误输出至文件来实现日志功能。该变量默认为5

    请注意,每次搜索对应2~3个网页请求,而timeout值是对单个请求的时长所设的限制,因此一次搜索的总时长最长的花费可能会是timeout的2~3倍。

  5. 如果搜索没有结果,标准错误输出stderr会显示一条错误信息没有匹配的搜索结果:,紧接着是没有搜索结果的关键字。类似的,你可以重定向标准错误输出至文件来实现日志功能。

  6. 指定变量picTrue,你可以自动下载这个词条的概要图:

    >>>ret=getBaike('Python',pic=True)

    如果该词条有概要图,那么就会下载到当前目录下,文件名格式为"(词条名)_(“义项序号”).(图片格式)"。默认图片格式是png。

    该变量默认为False

  7. 当变量的值有误时,标准错误输出stderr会显示一条错误信息参数不正确:,紧接着是有误的参数名。要想更正,可以通过setting()方法设置正确的参数值,如果设置正确那么setting()将返回0,错误则是非0值。

    每个Baike搜索对象的设置都是独立的。如果希望将搜索设置设为默认值(如no参数等),可以使用reset()方法。

    如果使用getBaike()进行搜索,因为每次搜索都是独立的,因此每次搜索都会将设置置为默认值。


已知问题

  • [ ] 无法显示部分表格/列表

依赖

需要requestslxml。若安装失败可以手动执行:

#pip install requests lxml

在Python 3.6.9, 3.7.1 上正常运行。

在Windows10 (1909), Ubuntu 18.04 LTS上正常运行。

在Termux上安装lxml可能存在问题,请尝试先安装Cython 或先安装对应发行版的库文件。

baike仍处于pre-Alpha阶段,建议随时使用最新版以减少bug。


声明

baike只有收录/分类/组织的功能,对显示的信息负任何法律责任,也享有著作权,若信息源的信息发生变更,baike没有能力随时更新内容,因此使用者须自行对提供的信息的真实性、进行判断。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?