Giter Site home page Giter Site logo

wptools's Introduction

Wikipedia tools (for Humans)

https://travis-ci.org/siznax/wptools.svg?branch=master https://coveralls.io/repos/github/siznax/wptools/badge.svg?branch=master

Python and command-line MediaWiki access for Humans

  • get page extracts, image, Infobox data, Wikidata, and more
  • get a random page, category, or site
  • get page statistics
  • get category members
  • get site info and stats
  • get data in any language

This package is intended to make it as easy as possible to get data from MediaWiki instances, expose more Wikidata, and extend Wikimedia APIs just for kicks. We say "(for Humans)" because that is a goal. Questions, feedback, and especially contributions are welcome!

Install

$ pip install wptools
✨🦄✨

Example

>>> import wptools

Get a page object:

>>> page = wptools.page('Gandhi')

Get API:Query data:

>>> page.get_query()
en.wikipedia.org (query) Gandhi
en.wikipedia.org (imageinfo) File:Portrait Gandhi.jpg
Mahatma Gandhi (en) data
{
  aliases: <list(10)> M K Gandhi, Mohandas Gandhi, Bapu, Gandhi, M...
  assessments: <dict(10)> Pakistan, Alternative Views, South Afric...
  description: <str(67)> pre-eminent leader of Indian nationalism ...
  extext: <str(3077)> Mahātmā **Mohandas Karamchand Gandhi** ( ; H...
  extract: <str(3372)> <p>Mahātmā <b>Mohandas Karamchand Gandhi</b...
  image: <list(2)> {u'size': 2951123, 'kind': 'query-pageimage', u...
  label: Mahatma Gandhi
  length: 262,790
  links: <list(500)> 10 Janpath, 14th Dalai Lama, 1915 Singapore M...
  modified: <dict(1)> page
  pageid: 19379
  random: Salt
  redirected: <list(1)> {u'to': u'Mahatma Gandhi', u'from': u'Gandhi'}
  redirects: <list(53)> {u'ns': 0, u'pageid': 55342, u'title': u'M...
  requests: <list(2)> query, imageinfo
  title: Mahatma Gandhi
  url: https://en.wikipedia.org/wiki/Mahatma_Gandhi
  url_raw: https://en.wikipedia.org/wiki/Mahatma_Gandhi?action=raw
  watchers: 1,811
  wikibase: Q1001
  wikidata_url: https://www.wikidata.org/wiki/Q1001
}

Get API:Parse data:

>>> page.get_parse()
en.wikipedia.org (parse) Gandhi
en.wikipedia.org (imageinfo) File:MKGandhi.jpg
Mahatma Gandhi (en) data
{
  image: <list(1)> {u'size': 2951123, 'kind': 'parse-image', u'des...
  infobox: <dict(25)> known_for, other_names, image, signature, bi...
  iwlinks: <list(10)> https://biblio.wiki/wiki/Mohandas_K._Gandhi,...
  pageid: 19379
  parsetree: <str(331808)> <root><template><title>Redirect</title>...
  requests: <list(2)> parse, imageinfo
  title: Mahatma Gandhi
  wikibase: Q1001
  wikidata_url: https://www.wikidata.org/wiki/Q1001
  wikitext: <str(261349)> {{Redirect|Gandhi}}{{pp-move-indef}}{{pp...
}

Get Wikidata:

>>> page = wptools.page(wikibase='Q1001')
>>> page.get_wikidata()
www.wikidata.org (wikidata) Q1001
www.wikidata.org (labels) Q1280678|P535|P434|Q1860|P3762|Q668|P12...
www.wikidata.org (labels) P119|Q1930187|P691|P18|P19|P1066|P509|P...
www.wikidata.org (labels) Q6512732|Q1568|P972|Q84|P1430|P31|Q2140...
www.wikidata.org (labels) P1576|Q4964182|P1368|P140|Q22336956|P12...
en.wikipedia.org (imageinfo) File:Portrait Gandhi.jpg
Mahatma Gandhi (en) data
{
  aliases: <list(10)> M K Gandhi, Mohandas Gandhi, Bapu, Gandhi, M...
  claims: <dict(113)> P646, P535, P906, P434, P648, P3762, P1711, ...
  description: <str(67)> pre-eminent leader of Indian nationalism ...
  image: <list(1)> {u'size': 2951123, 'kind': 'wikidata-image', u'...
  label: Mahatma Gandhi
  labels: <dict(171)> Q1280678, P535, Q131149, P434, Q1860, P3762,...
  modified: <dict(1)> wikidata
  requests: <list(6)> wikidata, labels, labels, labels, labels, im...
  title: Mahatma_Gandhi
  what: human
  wikibase: Q1001
  wikidata: <dict(112)> Geni.com profile ID (P2600), National Libr...
  wikidata_pageid: 1330
  wikidata_url: https://www.wikidata.org/wiki/Q1001
}

Get RESTBase data:

>>> page.get_restbase('/page/summary/')
en.wikipedia.org (restbase) /page/summary/Gandhi
Mahatma Gandhi (en) data
{
  description: <str(67)> pre-eminent leader of Indian nationalism ...
  exhtml: <str(1168)> <p>Mahātmā <b>Mohandas Karamchand Gandhi</b>...
  exrest: <str(931)> Mahātmā Mohandas Karamchand Gandhi (; Hindust...
  image: <list(2)> {'kind': 'restbase-original', u'width': 2024, '...
  pageid: 19379
  requests: <list(1)> restbase
  title: Mahatma_Gandhi
  url: https://en.wikipedia.org/wiki/Gandhi
  url_raw: https://en.wikipedia.org/wiki/Gandhi?action=raw
}

Get all the things (at once):

>>> page.get()
en.wikipedia.org (query) Gandhi
en.wikipedia.org (parse) 19379
www.wikidata.org (wikidata) Q1001
www.wikidata.org (labels) Q1280678|P535|P434|Q1860|P3762|Q668|P12...
www.wikidata.org (labels) P119|Q1930187|P691|P18|P19|P1066|P509|P...
www.wikidata.org (labels) Q6512732|Q1568|P972|Q84|P1430|P31|Q2140...
www.wikidata.org (labels) P1576|Q4964182|P1368|P140|Q22336956|P12...
en.wikipedia.org (restbase) /page/summary/Mahatma_Gandhi
en.wikipedia.org (imageinfo) File:MKGandhi.jpg|File:Portrait Gandhi.jpg
Mahatma Gandhi (en) data
{
  aliases: <list(10)> M K Gandhi, Mohandas Gandhi, Bapu, Gandhi, M...
  assessments: <dict(10)> Pakistan, Alternative Views, South Afric...
  claims: <dict(113)> P646, P535, P906, P434, P648, P3762, P1711, ...
  description: <str(67)> pre-eminent leader of Indian nationalism ...
  exhtml: <str(1168)> <p>Mahātmā <b>Mohandas Karamchand Gandhi</b>...
  exrest: <str(931)> Mahātmā Mohandas Karamchand Gandhi (; Hindust...
  extext: <str(3077)> Mahātmā **Mohandas Karamchand Gandhi** ( ; H...
  extract: <str(3372)> <p>Mahātmā <b>Mohandas Karamchand Gandhi</b...
  image: <list(6)> {u'size': 2951123, 'kind': 'query-pageimage', u...
  infobox: <dict(25)> known_for, other_names, image, signature, bi...
  iwlinks: <list(10)> https://biblio.wiki/wiki/Mohandas_K._Gandhi,...
  label: Mahatma Gandhi
  labels: <dict(171)> Q1280678, P535, Q131149, P434, Q1860, P3762,...
  length: 262,790
  links: <list(500)> 10 Janpath, 14th Dalai Lama, 1915 Singapore M...
  modified: <dict(2)> wikidata, page
  pageid: 19379
  parsetree: <str(331808)> <root><template><title>Redirect</title>...
  random: Salt
  redirected: <list(1)> {u'to': u'Mahatma Gandhi', u'from': u'Gandhi'}
  redirects: <list(53)> {u'ns': 0, u'pageid': 55342, u'title': u'M...
  requests: <list(9)> query, parse, wikidata, labels, labels, labe...
  title: Mahatma_Gandhi
  url: https://en.wikipedia.org/wiki/Mahatma_Gandhi
  url_raw: https://en.wikipedia.org/wiki/Mahatma_Gandhi?action=raw
  watchers: 1,811
  what: human
  wikibase: Q1001
  wikidata: <dict(112)> Geni.com profile ID (P2600), National Libr...
  wikidata_pageid: 1330
  wikidata_url: https://www.wikidata.org/wiki/Q1001
  wikitext: <str(261349)> {{Redirect|Gandhi}}{{pp-move-indef}}{{pp...
}

Get more (expensive) data:

>>> page.get_more()
en.wikipedia.org (querymore) Gandhi
Mahatma Gandhi (en) data
{
  categories: <list(68)> Category:1869 births, Category:1948 death...
  contributors: 2,606
  files: <list(53)> File:Aum Om red.svg, File:Commons-logo.svg, Fi...
  languages: <list(168)> {u'lang': u'af', u'title': u'Mahatma Gand...
  pageid: 19379
  redirected: <list(1)> {u'to': u'Mahatma Gandhi', u'from': u'Gandhi'}
  requests: <list(1)> querymore
  title: Mahatma Gandhi
  views: 19,242
}

Get data in another language:

>>> page = wptools.page(lang='zh')
zh.wikipedia.org (random) 🍰
哈莉特·塔布曼 (zh) data
{
  pageid: 211070
  title: 哈莉特·塔布曼
}

Get data from another wiki:

>>> page = wptools.page(wiki='en.wikiquote.org')
en.wikiquote.org (random) 🍪
Malala_Yousafzai (en)
{
  pageid: 146817
  title: Malala_Yousafzai
}

Documentation

See our wiki.

Please enjoy!

@siznax 👹

wptools's People

Contributors

siznax avatar lisongx avatar 0x9900 avatar jayvdb avatar mcepl avatar robbieclarken avatar kovarden avatar matthewgehring avatar uriva avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.