按部分从Wikipedia API获取纯文本

时间:2019-04-04 17:39:49

标签: python wikipedia pywikibot

我正在尝试使用Wikipedia API获得纯净的(无html / css /特殊字符/ \ n / links / images等字符)文本。 我试图用这段代码做到这一点

import requests

API_URL = 'http://en.wikipedia.org/w/api.php'

def get_section(page, section):
    search_params = {
        'action': 'parse',
        'prop': 'text',
        'pageid': page,
        'section': section,
        'format': 'json'
    }

    response = requests.get(API_URL, params=search_params)

    return response.json()

text = get_section(23862, 2)
print(text['parse']['text']['*']).strip()

它返回此错误

UnicodeEncodeError: 'charmap' codec can't encode character '\u2014' in position 5722: character maps to <undefined>

我需要使用exintro参数获取诸如文章介绍之类的文章部分

https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&explaintext&pageids=23862

它返回纯文本。正是我需要的

1 个答案:

答案 0 :(得分:0)

我建议对这些东西使用Pywikibot。有一个易于使用的好用的pywikibot / data / api.py脚本。从这里开始:https://www.mediawiki.org/wiki/Manual:Pywikibot/Create_your_own_script,然后查看api.py,可以使用哪些选项来获得所需的结果。