1


2

pywikipediaを使って、内部のリンクやテンプレートを使わずに、ページのテキストだけを取得することは可能ですか?

2 Answer


4


「ウィキテキストのみを取得したい」という場合は、 `+ wikipedia.Page `クラスと ` get +`メソッドを見てください。

import wikipedia

site = wikipedia.getSite('en', 'wikipedia')
page = wikipedia.Page(site, 'Test')

print page.get() # '''Test''', '''TEST''' or '''Tester''' may refer to:
#==Science and technology==
#* [[Concept inventory]] - an assessment to reveal student thinking on a topic.
# ...

このようにしてあなたは記事から完全な、生のウィキテキストを得ます。

`+ [[Concept inventory]] +`をConceptインベントリなどに変換するようにwiki構文を削除したい場合は、もう少し苦痛になるでしょう。

この問題の主な理由は、MediaWikiのwiki構文には定義された文法がないことです。 そのため、解析や削除が非常に困難になります。 私は現在あなたがこれを正確に行うことを可能にするソフトウェアを知らない。 MediaWiki Parserクラスはもちろんありますが、それはPHPであり、少し理解するのが難しく、その目的は非常に異なります。

しかし、リンクを削除したいだけの場合、または非常に単純なwiki構成で正規表現を使用する場合は、次のようにします。

text = re.sub('\[\[([^\]\|]*)\]\]', '\\1', 'Lorem ipsum [[dolor]] sit amet, consectetur adipiscing elit.')
print text #Lorem ipsum dolor sit amet, consectetur adipiscing elit.

そして、パイプリンクの場合:

text = re.sub('\[\[(?:[^\]\|]*)\|([^\]\|]*)\]\]', '\\1', 'Lorem ipsum [[dolor|DOLOR]] sit amet, consectetur adipiscing elit.')
print text #Lorem ipsum DOLOR sit amet, consectetur adipiscing elit.

等々。

しかし、例えば、ページからネストしたテンプレートを削除するための信頼できる簡単な方法はありません。 コメントにリンクがある画像についても同様です。 それはかなり難しく、そして最も内部のリンクを再帰的に取り除き、それをマーカーに置き換えてやり直すことを含みます。 必要に応じて、wikipedia.pyの `+ templateWithParams +`関数をご覧ください。ただし、見栄えはよくありません。


1


https://github.com/earwig/mwparserfromhell[Githubのmwparserfromhell]と呼ばれるモジュールがあります。 それは多くのマークアップを削除するstrip_code()と呼ばれるメソッドを持っています。
import pywikibot import mwparserfromhell

test_wikipedia = pywikibot.Site( 'en'、 'test')text = pywikibot.Page(test_wikipedia、 'Lestat_de_Lioncourt')。get()

full = mwparserfromhell.parse(テキスト)stripped = full.strip_code()

フルプリント「*******************」のプリントを削除

比較の抜粋:

{{db-foreign}}

[[Image:lestat.jpg|thumb|right|[[Stuart Townsend]] as Lestat in the film ''[[Queen of the Damned (film)|Queen of the Damned]]'']]

[[Image:Lestat IWTV.jpg|thumb|right|[[Tom Cruise]] as Lestat in the 1994 film ''[[Interview with the Vampire (film)|Interview with the Vampire]]'']]

'' 'Lestat de Lioncourt' ''は['[Vampire Lestat]]' 'を含む、[[Anne Rice]]によるいくつかの[[小説]]に登場する[[架空の人物]]です。 彼は[[[吸血鬼]]であり、「[[[吸血鬼クロニクル]]]」の大多数の主人公であり、一人称で語られている。

==Publication 歴史==
Lestat de Lioncourtは、Anne Riceの「The Vampire Chronicles」シリーズの小説の大多数の語り手であり、主人公です。 シリーズの2冊目の本である '[[The Vampire Lestat]]'は、Lestatの自伝として提示されており、フランスでの彼の若年から吸血鬼としての初期の頃までの彼の功績に従います。 シリーズの他の本の多くはまたLestatによって書かれていると信じられています。

*******************

thumb | right |映画「ダムの女王」の中のレスタットとしてスチュアート・タウンゼント

'' 'Lestat de Lioncourt' ''は、 '' Vampire Lestat ''を含む、Anne Riceのいくつかの小説に登場する架空の人物です。 彼は吸血鬼であり、「ヴァンパイアクロニクルズ」の大部分の主人公であり、一人称で語りかけられている。

出版歴Lestat de Lioncourtは、Anne Riceの「The Vampire Chronicles」シリーズの小説の大多数の語り手であり、主人公です。 シリーズの2冊目の本である「The Vampire Lestat」は、Lestatの自伝として提示され、フランスでの彼の若年から吸血鬼としての初期の頃までの彼の功績を追っています。 シリーズの他の本の多くはまたLestatによって書かれていると信じられています。