Skip to content

1MLightyears/baike

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[TOC]

baike

PyPIPyPI - Python Version

简介

baike是一个百度百科search bot。

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


安装

#pip install baike

简单上手

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

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

更多功能

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

    >>>print(getBaike('Python',no=0))
      Python
    1:计算机程序设计语言
    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"
    如果你使用的是MacMacOS 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时,“段落序号”将被忽略,但是仍然需要输入合法的值以避免报错。

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

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

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

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

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

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

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

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

    如果该词条有概要图,那么就会下载到当前目录下,文件名格式为"<搜索关键词>_<义项序号>_<12位时间戳>.<图片格式>"。默认图片格式是jpg。

    该变量默认为False

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

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

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


已知问题

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

依赖

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

#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没有能力随时更新内容,因此使用者须自行对提供的信息的真实性、进行判断。