来自mw api作者的微型mediawikiapi客户端库
pywikiapi的Python项目详细描述
pywikiapi:一个很小的python mediawiki api库
这是一个极简主义的库,它处理一些核心的MiaWiKi API复杂度,如处理连续性、登录、错误和警告,但不强加任何额外的抽象层,允许您以最理想的方式直接使用MWAPI的每一个特征。
这个库是由mediawiki api的原始作者自己编写的,并试图解决原始api设计中的一些错误……有些事情本应该做得不同。:)
frompywikiapiimportwikipedia# Connect to English Wikipediasite=wikipedia('en')# Iterate over all query results as they are returned# from the server, handling continuations automatically.# (pages whose title begins with "New York-New Jersey")forrinsite.query(list='allpages',apprefix='New York-New Jersey'):forpageinr.allpages:print(page.title)# Iterate over two pages, getting the page info and the list of links for each of the two pages. Each page will be yielded as a separate result.forpageinsite.query_pages(titles=['Test','API'],prop=['links','info'],pllimit=10):print(page.title)print(', '.join([l.titleforlinpage.links]))print()site.login('username','password')site('edit',text=...)
安装
您可以安装fromPyPI:
pip install pywikiapi
库支持Python2.7+和Python3.4+
如何使用
- 创建一个
Site
对象,可以直接创建,也可以使用wikipedia
助手函数创建。 - 对所有与迭代相关的api调用使用
site.query(...)
或site.iterate(action, ...)
。api将在内部处理所有延续逻辑。 - 使用
site.query_pages(...)
一次从action=查询获取一个页面对象。 - 使用
site('query', meta='siteinfo')
te访问任何api操作,并将任何其他参数作为键传递。
数据格式
库将正确处理所有基本参数类型:
- 数字和字符串将按原样传递
- 布尔值
True
将作为"1"
传递。 None
和布尔值False
将不包含。- 日期时间将用
isoformat()
格式化。警告:确保datetime位于UTC时区。 - 列表将被转换为由管道
|
分隔的值字符串。