C#wikiページのデータをスクレイプする(スクリーンスクレイピング)


質問

私はWikiページを掻きたい。具体的には、 この1つです。

私のアプリでは、ユーザーは車両の登録番号(たとえばSBS8988Z)を入力できるようになり、関連情報(ページ自体にある)が表示されます。

たとえば、ユーザーがSBS8988Zをアプリケーションのテキストフィールドに入力すると、そのwikiページの行が検索されます

SBS8988Z (SLBP 192/194*) - F&N NutriSoy Fresh Milk: Singapore's No. 1 Soya Milk! (2nd Gen)

返品SBS8988Z(SLBP 192/194 *) - F&N NutriSoy Fresh Milk:シンガポールのNo.1大豆ミルク! (第2世代)。

私のコードはこれまで(さまざまなウェブサイトからコピーして編集しています)...

SBS8988Z (SLBP 192/194*) - F&N NutriSoy Fresh Milk: Singapore's No. 1 Soya Milk! (2nd Gen)

しかし、私はArgumentExceptionが処理されていない - パスの不正な文字を取得しています。

コードの何が間違っていますか?これを行う簡単な方法はありますか?私はHtmlAgilityPackを使用していますが、より良い解決策がある場合は、私は喜んで準拠します。

受け入れられた回答

コードの何が間違っていますか?鈍くするには、すべて。 :P

ページはあなたがそれを読んでいるようにフォーマットされていません。あなたはそのような目的のコンテンツを得ることを望むことはできません。

ページの内容(興味がある部分)は次のようになります。

<h2>
<span id="Deployments" class="mw-headline">Deployments</span>
</h2>
<p>
    <!-- ... -->
    <b>SBS8987B</b>
    (SLBP 192/194*)
    <br>
    <b>SBS8988Z</b>
    (SLBP 192/194*) - F&amp;N NutriSoy Fresh Milk: Singapore's No. 1 Soya Milk! (2nd Gen)
    <br>
    <b>SBS8989X</b>
    (SLBP SP)
    <br>
    <!-- ... -->
</p>

基本的には、私たちが探している登録番号を含むb要素を見つける必要があります。要素を見つけたら、テキストを取得してまとめて結果を構成します。ここはコードです:

<h2>
<span id="Deployments" class="mw-headline">Deployments</span>
</h2>
<p>
    <!-- ... -->
    <b>SBS8987B</b>
    (SLBP 192/194*)
    <br>
    <b>SBS8988Z</b>
    (SLBP 192/194*) - F&amp;N NutriSoy Fresh Milk: Singapore's No. 1 Soya Milk! (2nd Gen)
    <br>
    <b>SBS8989X</b>
    (SLBP SP)
    <br>
    <!-- ... -->
</p>




ライセンスを受けた: CC-BY-SA
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ