2016-06-10 16 views
-2

Ich wollte ein System erstellen, in dem wir etwas auf dem Terminal eines Raspberry Pi suchen lassen und das Pi gibt eine Sprachausgabe aus.Den ersten Absatz von Wikipedia abrufen und in eine Textdatei speichern

Ich habe das Text-zu-Sprache-Konvertierungsproblem mit Pico TTS gelöst. Nun, was ich tun wollte, ist auf der Wikipedia-Seite des zu durchsuchenden Begriffes zu gehen und den ersten Absatz der Seite in eine Textdatei zu speichern.

Zum Beispiel das Ergebnis für die Eingabe Tiger in Simple English sollte eine Textdatei herzustellen, die -

Der Tiger (Panthera tigris) ist ein Fleisch fressendes Säugetier. Es ist das größte lebende Mitglied der Katzenfamilie, die Felidae. Sie lebt in Asien, hauptsächlich in Indien, Bhutan, China und Sibirien.

Ich versuchte mit this, aber es schien nicht zu funktionieren.

Fehlermeldung für

$ 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('\r\n', '\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 
+0

so was haben Sie versucht, so weit? posten Sie bitte eine [mcve] – fedorqui

+0

Ich versuchte mit diesem http: // stackoverflow.com/questions/4460921/extract-the-first-paragraph-from-a-wikipedia-article-python –

+0

@SouvikSaha Was lief schief? SO ist keine freie Arbeitskraft, niemand wird dieses Programm von Grund auf für dich schreiben. –

Antwort

0

scheint dies zu funktionieren:

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' 

es richtig ergibt:

Der Tiger (Panthera tigris) ein Fleisch fressendes Säugetier ist. Es ist das größte lebende Mitglied der Katzenfamilie, die Felidae.

Auch mit title=Albert_Einstein getestet:

Albert Einstein (14. März 1879 \ u2013 18. April 1955) war ein in Deutschland geborenen theoretischen Physiker, der die allgemeine Relativitätstheorie entwickelt, eine der beiden Säulen moderne Physik (neben der Quantenmechanik). \ nEr erhielt 1921 den Nobelpreis für Physik, nicht jedoch für die Relativitätstheorie.

(Beachten Sie, dass title="Albert Einstein", title=albert_einstein und title=albert%20einstein alle nicht funktionieren, so wollen Sie schließlich ein anderer Befehl, um die besten passenden realen simple.wikipedia Artikeltitel zu finden.)

die curl Befehl Marken eine HTTP-Anfrage an simple.wikipedia.org. dies in Aktion zu sehen, versuchen Sie dies:

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

der sed Befehl extrahiert dann den gewünschten Teil der Antwort.

aktualisiert mit curl & sed der Himbeere Wahrscheinlichkeit des Arbeitens zu erhöhen: geändert https zu http und neu geschrieben sed Befehl ohne -e.

ref:

MediaWiki API?

+0

Kannst du mir bitte sagen, wie man das genau benutzt? Ich habe versucht, es als Bash-Skript auszuführen, und es scheint keine Ausgabe @ webb zu geben –