私のアプリケーションでは、ブログ記事の画像のURLを取得する必要があります。これを行うために私はHtmlAgilityPackを使用しています。 XPathとHtmlAgilityPackを使用してHTMLドキュメントノードを取得する最も速い方法は何ですか?
この
は、私がこれまで持っているコードです:static string GetBlogImageUrl(string postUrl)
{
string imageUrl = string.Empty;
using (WebClient client = new WebClient())
{
string htmlString = client.DownloadString(postUrl);
HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(htmlString);
string xPath = "/html/body/div[contains(@class, 'container')]/div[contains(@class, 'content_border')]/div[contains(@class, 'single-post')]/main[contains(@class, 'site-main')]/article/header/div[contains(@class, 'featured_image')]/img";
HtmlNode node = htmlDocument.DocumentNode.SelectSingleNode(xPath);
imageUrl = node.GetAttributeValue("src", string.Empty);
}
return imageUrl;
}
問題は、私はそれがで画像のURLを抽出するために約3秒かかることに私は気づいたいくつかのテストをしたとき、これは、遅すぎるということです指定されたページフィードを読み込んで赤色の記事を表示しようとすると問題になります。
ロードしたい要素の絶対パスを使用しようとしましたが、改善が見られませんでした。これを達成するためのより速い方法がありますか?
あなたは解析しているhtml構造を共有できますか? – eLRuLL
これは実際にネットワーク接続とそのサーバーの応答に依存します。 Xpathは、ドキュメントがメモリにロードされるとアプリの速度を落とさず、超高速です。 –
@HungCao私は、特集したイメージを得るために、企業ブログからブログ投稿を解析しようとしています。ここに一つの例があります。 http://blog.cedrotech.com/5-tendencias-mobile-que-sua-empresa-precisa-acompanhar/ – artie