私は pywikibot-core を使用しており、前に別の Python Mediawiki API ラッパーをWikipedia.py (.HTML メソッドを持つ) として使用していました。もっと多くの機能があると思うので、pywikibot-core に切り替えましたが、同様の方法が見つかりません。(注意:私はあまり熟練していません)。
6 に答える
一般に、wikipedia の代わりに pywikibot を使用する必要があります (たとえば、「import wikipedia」の代わりに「import pywikibot」を使用する必要があります)。wikipedia.py にあったメソッドとクラスを探している場合は、それらが分離され、見つけることができます。 pywikibot フォルダー内 (主に page.py と site.py 内)
compat で作成したスクリプトを実行したい場合は、pywikibot-core にある compat2core.py (scripts フォルダー内) という名前のスクリプトを使用できます。変換に関する詳細なヘルプが README-conversion.txt という名前で用意されているので、注意深く読んでください。
IIRC ページ全体の HTML が必要なので、api.php?action=parseを使用するものが必要です。Python では、そのようなことのためにwikitoolsを使用することがよくあります。PWBやその他の要件については知りません。
Mediawiki API には、Mediawiki マークアップ パーサーによって返されるウィキ マークアップの HTML スニペットを取得できる解析アクションがあります。
pywikibot ライブラリには、次のように使用できる関数が既に実装されています。
def getHtml(self,pageTitle):
'''
get the HTML code for the given page Title
Args:
pageTitle(str): the title of the page to retrieve
Returns:
str: the rendered HTML code for the page
'''
page=self.getPage(pageTitle)
html=page._get_parsed_page()
return html
mwclient Python ライブラリを使用する場合、一般的な API メソッドがあり ます。https ://github.com/mwclient/mwclient/blob/master/mwclient/client.py を参照してください。
次のような html コードを取得するために使用できます。
def getHtml(self,pageTitle):
'''
get the HTML code for the given page Title
Args:
pageTitle(str): the title of the page to retrieve
'''
api=self.getSite().api("parse",page=pageTitle)
if not "parse" in api:
raise Exception("could not retrieve html for page %s" % pageTitle)
html=api["parse"]["text"]["*"]
return html
上記のように、これにより、私がコミッターであるpy-3rdparty-mediawikiライブラリに実装されているダック タイプのインターフェイスが提供されます。これは問題 38 を閉じることで解決されました- HTML ページの取得を追加します
「[saveHTML.py] は記事と画像の HTML ページをダウンロードし、興味深い部分、つまり記事のテキストとフッターをファイルに保存します」
ソース: https://git.wikimedia.org/blob/pywikibot%2Fcompat.git/HEAD/saveHTML.py