2017-08-17 12 views
-1

thisのリンクから映画のリリース日を抽出したいと思います。c#wikipediaのデータをhtml-agility-packから解析する

問題は、クラスまたはIDを持たない<td>タグに直接指定することです。私が考えることができる唯一の可能な解決策は、データを抽出するためにスタイルタグを使用することですが、私はそれを行う方法については考えていません。

は、ここに私のコード

url = "https://en.wikipedia.org/wiki/" + textBox1.Text.Replace(" ", "_"); 
try 
{ 
    foreach (HtmlNode node in doc.DocumentNode.SelectNodes(/*?*/)) 
    { 
     label1.Text+=node.InnerText; 
    }         
} 
catch (Exception ex3) { } 

助けてくださいよ!次のXPath式は、あなたが必要要素を与える

+1

なぜ[API](https://en.wikipedia.org/w/api.php)を使用しないのですか?または、あなたは映画に関する情報を取得したいので、[映画APIの一部](https://developer.fandango.com/Rotten_Tomatoes)?正直なところ、wiki-pageをダウンロードして手作業で解析すると、私がやる最後の**ものになります。 –

+0

@Manfred Radlwimmerそのソーシャルプロジェクトとimはhtml-agility-pack – Kabeer

+0

を使用することが許可されています。それが何らかの学校の割り当てであることを意味するならば、誰でもあなたを教えています。 –

答えて

-1

//*[@id="mw-content-text"]/div/table[1]/tbody/tr[14]/td 

プロヒント:Chromeを開き、デバッガツールは、右クリックして「コピー>コピーXPathを」ヒット、あなたが探している要素に移動します。

提案:XPath式はかなり脆いようです。 RegExを使用してHTMLの特定の部分を抽出しようとすると、より安定したソリューションにつながる可能性があります。ただし、don't try to parse HTML with Regex!

+2

テーブル[1]とtr [14]はインデックスを使用しています。別のwikiページでは、これは動作しません。私は、テーブル全体を取り出して、 'R​​elease Date'というテキストで正しい要素を確認する方が良いと思います。 –

+0

True!私が言ったように、この時点では、RegExを使用するか、テーブル行を繰​​り返し処理するだけで意味があります。 – larsbe

関連する問題