65

私は MediaWiki にまったく慣れていないので、少し問題があります。私はいくつかのWikiページのタイトルを持っており、 api.phpを使用してそのページのテキストだけを取得したいのですが、APIで見つけたのはページのWikiコンテンツを取得する方法だけです(wikiマークアップを使用) )。このHTTPリクエストを使用しました...

/api.php?action=query&prop=revisions&rvlimit=1&rvprop=content&format=xml&titles=test

しかし、Wiki マークアップがなくても、テキスト コンテンツだけが必要です。MediaWiki API でそれは可能ですか?

4

10 に答える 10

70

action=parsehtml を取得するために使用します。

/api.php?action=parse&page=test

HTML からテキストを取得する 1 つの方法は、それをブラウザーにロードし、JavaScript を使用してテキスト ノードのみを探してノードをたどることです。

于 2011-05-27T16:50:06.767 に答える
45

API の TextExtracts 拡張機能は、あなたが求めていることを行います。prop=extractsクリーンアップされた応答を取得するために使用します。たとえば、このリンクをクリックすると、スタック オーバーフローの記事のクリーンアップされたテキストが表示されます。また、セクション タグが含まれているので、記事の個々のセクションを識別できるのも便利です。

私の回答に表示リンクを含めるだけで、上記のリンクは次のようになります。

/api.php?format=xml&action=query&prop=extracts&titles=Stack%20Overflow&redirects=true

編集: Amr が述べたように、TextExtracts は MediaWiki の拡張機能であるため、すべての MediaWiki サイトで利用できるとは限りません。

于 2014-02-18T04:05:03.333 に答える
38

?action=rawMediaWiki ページの最後に追加すると、最新のコンテンツが未加工のテキスト形式で返されます。例:- https://en.wikipedia.org/wiki/Main_Page?action=raw

于 2014-03-06T12:49:39.003 に答える
33

パラメータを使用して、API から wiki データをテキスト形式で取得できexplaintextます。さらに、多くのタイトルの情報にアクセスする必要がある場合は、1 回の呼び出しですべてのタイトルの wiki データを取得できます。パイプ文字|を使用して各タイトルを区切ります。たとえば、次の API 呼び出しは、「Google」ページと「Yahoo」ページの両方からデータを返します。

http://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exlimit=max&explaintext&exintro&titles=Yahoo|Google&redirects=

パラメーター:

  • explaintext: 限定された HTML ではなくプレーン テキストとして抽出を返します。
  • exlimit=max: 複数の結果を返します。現在の上限は 20 です。
  • exintro: 最初のセクションの前のコンテンツのみを返します。完全なデータが必要な場合は、これを削除してください。
  • redirects=: リダイレクトの問題を解決します。
于 2015-06-10T18:31:58.753 に答える
11

それが最も簡単な方法です: http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Albert%20Einstein&prop=revisions&rvprop=content

于 2012-04-24T18:41:20.620 に答える
6

API を使用してテキストだけを取得することはできないと思います。

私にとってうまくいったのは、(ブラウザーで使用する通常の URL を使用して) HTML ページを要求し、コンテンツ div の下の HTML タグを削除することでした。

編集:

HTML Parser for Javaを使用して良い結果が得られました。特定の DIV の下にある HTML タグを削除する方法の例があります。

于 2009-10-26T14:51:33.577 に答える
2

多くの場合、書式設定記号のないWikiページはあまり意味がありません。

必要に応じて、自分でフォーマットを削除することもできますが、その過程でいくつかの問題が発生します。

(検索エンジンのようなものを作成している場合を除いて、その場合はテキスト部分のみが必要であり、書式設定記号を完全に無視できます)

于 2009-10-26T14:49:57.120 に答える