タスク
Amazon.comのウェブページから商品の名前を抽出するアプリケーションを作成することになっています。
アクション
これを行うにはHtmlAgilityPackを使用すると思いました。解決策はあると思いますが、1つのバグが解決し続けています。
結果
n個の異なるサイトからhtmlソースを取得しようとしたとしましょう。アプリケーションは、常にサイト1〜nの最初のサイトのソースを使用しますが、その理由はわかりません。コンピューターを再起動した場合にのみ、別のWebサイトからHTMLを抽出できます。
コード
private void extractHTML()
{
//retreive URL
string address = txtURL.Text;
string itemId = "result_0";
//create document
HtmlWeb webGet = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument document = webGet.Load(address);
//look for name of result
HtmlNode node = document.GetElementbyId(itemId);
if(node != null)
{
IEnumerable<HtmlNode> allH3 = node.Descendants("h3");
foreach (HtmlNode h3 in allH3)
{
if (h3.ChildNodes[1].InnerHtml == null)
{
continue;
}
else
{
lblId.Text = itemId;
//dig down to lowest subnode to get correct InnerHtml
HtmlNode subNode = h3.ChildNodes[1];
if (subNode.ChildNodes.Count > 0)
{
lblName.Text = subNode.ChildNodes[subNode.ChildNodes.Count - 1].InnerHtml;
break;
}
else
{
lblName.Text = h3.ChildNodes[1].InnerHtml;
break;
}
}
}
}
}
ヘルプは大歓迎です!前もって感謝します。