获取维基百科的第一段,并将其存储到文本文件中



我想制作一个系统,在这个系统中,我们在Raspberry Pi的终端上提供要搜索的东西,Pi提供语音输出。

我已经使用pico-TTS解决了文本到语音的转换问题。现在我想做的是转到要搜索的术语的维基百科页面,并将页面的第一段存储到文本文件中。

例如,在简单英语中输入Tiger的结果应该是一个包含-的文本文件

老虎(Panthera tigris)是一种食肉哺乳动物。它是猫科动物中现存最大的一种。它生活在亚洲,主要是印度、不丹、中国和西伯利亚。

我试过使用它,但似乎不起作用。

的错误消息

$ pip install wikipedia
...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-qdTIZY/wikipedia/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('rn', 'n'), __file__, 'exec'))" install --record /tmp/pip-9CPD6D-record/install-record.txt --single-version-externally-managed --compile
failed with error code 1 in /tmp/pip-build-qdTIZY/wikipedia
Storing debug log for failure in /home/pi/.pip/pip.log

这似乎有效:

title=Tiger
n_sentences=2
curl -s http://simple.wikipedia.org/w/api.php?action=query&prop=extracts&titles="$title"&exsentences="$n_sentences"&explaintext=&format=json |
sed 's/.*"extract":"|"}}}}$//g'

它正确地产生:

老虎(Panthera tigris)是一种食肉哺乳动物。它是猫科动物中现存最大的一种。

还使用title=Albert_Einstein:进行了测试

阿尔伯特·爱因斯坦(Albert Einstein,1879年3月14日-2013年4月18日-1955年4月)是一位德国出生的理论物理学家,他发展了广义相对论,这是现代物理学的两大支柱之一(与量子力学并列)。\他在1921年获得了诺贝尔物理学奖,但没有获得相对论奖。

(请注意,title="Albert Einstein"title=albert_einsteintitle=albert%20einstein都不起作用,因此您最终需要另一个命令来找到最匹配的真正simple.wikipedia文章标题。)

curl命令向simple.wikipedia.org发出http请求。要查看此操作,请尝试以下操作:

curl http://simple.wikipedia.org/w/api.php?action=query&prop=extracts&titles=Tiger&exsentences=2&explaintext=&format=json 

CCD_ 6命令然后提取响应的期望部分。

更新以增加与树莓的CCD_ 7&sed:将https更改为http,并在没有-e的情况下重写sed命令。

参考:

MediaWiki API?