HTMLアジリティパックを使用して、HTMLページからイメージとhrefリンクを解析したいのですが、XMLやXPathについてはあまりよく分かりません。多くのWebサイトでヘルプドキュメントを検索していますが、また、私はVisualStudio 2005でC#を使用しています。私は英語を流暢に話すことができないので、役に立つコードを書くことができて本当に感謝します。Html Agility Packを使用してimg/srcまたは/ hrefsを取得するにはどうすればよいですか?
7
A
答えて
21
ホームページ上は非常によく似た何かを、しかし、考えてみます。
HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm"); // would need doc.LoadHtml(htmlSource) if it is not a file
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{
string href = link["href"].Value;
// store href somewhere
}
ですから、IMGする@ SRCのために、ちょうどsrc
各img
とa
、およびhref
を交換することを想像することができます。 Uri
クラスを見て、相対URLの取り扱いについて
foreach(HtmlNode node in doc.DocumentElement
.SelectNodes("//a/@href | //img/@src")
{
list.Add(node.Value);
}
: あなたもに簡素化することができるかもしれません。
6
例と受け入れられた回答が間違っています。最新のバージョンではコンパイルされません。私は別のものを試します:
private List<string> ParseLinks(string html)
{
var doc = new HtmlDocument();
doc.LoadHtml(html);
var nodes = doc.DocumentNode.SelectNodes("//a[@href]");
return nodes == null ? new List<string>() : nodes.ToList().ConvertAll(
r => r.Attributes.ToList().ConvertAll(
i => i.Value)).SelectMany(j => j).ToList();
}
これは私のために働いています。
1
多分私は答えを投稿するには遅すぎます。以下は私のために働いた:
var MainImageString = MainImageNode.Attributes.Where(i=> i.Name=="src").FirstOrDefault();
関連する問題
- 1. Html Agility Packを使用してテキストコンテンツを取得する
- 2. Html Agility Pack - htmlドキュメントからhtmlフラグメントを取得する
- 3. HtmlDocumentをメモリに保存するにはどうすればよいですか? Html Agility Pack
- 4. Html Agility Pack +特定のノードを取得
- 5. Html Agility Pack
- 6. ウェブサイトからデータを取得する方法ログインした後に!(Html Agility pack)
- 7. Html Agility Pack Foreach Reverse
- 8. HTML Agility Packで要素の終わりを取得しますか?
- 9. Html Agility Packを使用して2つのHTMLタグ間でコンテンツを取得する
- 10. Html Agility Packはまだ最高の.NET HTMLパーサーですか?
- 11. Html Agility PackですべてのWebページのリンクを取得する最も良い方法は何ですか?
- 12. HTML Agility Packサーバーの検索
- 13. Html Agility Pack DocumentNode.SelectNodesがnullを返す
- 14. PHPを使用してHTMLファイルからメタデータを取得するにはどうすればよいですか?
- 15. getElementsByClassName()でjavascriptでhtmlの表を取得して使用するにはどうすればよいですか?
- 16. Http agility pack xpath
- 17. Html Agility Packは私のjavascriptでつまみます
- 18. TypeScriptを使用してhtmlの値を取得するにはどうすればよいですか?
- 19. Swingでpack()を使用して余白を設定するにはどうすればよいですか?
- 20. Html Agility Packを使用してWebページから値を削る方法
- 21. getElemetByNameを使用してクリックしたボタン名を取得するにはどうすればよいですか?
- 22. C#でAgility Packを使用してページ内のすべてのHTMLタグを反復処理する方法は?
- 23. Html Agility Pack/C#:タグを作成/置換する方法は?
- 24. ember-dataを使用してRESTデータを取得/取得するにはどうすればよいですか?
- 25. HTML Agility Packを使用してすべてのデータをリストボックスに読み込みますか?
- 26. SolrJを使用してハイライトされたスニペットを取得するにはどうすればよいですか?
- 27. Html Agility Packでメタタグの値が切り捨てられています
- 28. AngularJSでスクリプトタグを使用して動的コンテンツを取得するにはどうすればよいですか?
- 29. JSTLを使用してJSPでクラスの値を取得するにはどうすればよいですか?
- 30. C#HTML Agility Pack XPathの問題
そして、Html Agility Packは相対パスを解決できますか? – iShow