HTML 민첩성 팩을 사용하여 HTML 페이지에서 이미지 및 href 링크를 구문 분석하려고하지만 XML 또는 XPath에 대해 많이 알지 못합니다. 많은 웹 사이트에서 도움말 문서를 찾는 데는 어려움이 있습니다. 또한 VisualStudio 2005에서 C#을 사용합니다. 영어 만 유창하게 말할 수 없으므로 유용한 코드를 작성할 수있어서 진심으로 감사드립니다.Html Agility Pack을 사용하여 img/src 또는/hrefs를 얻는 방법은 무엇입니까?
답변
홈 페이지의 first example 매우 비슷한 않지만, 고려 :
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);
}
: 당신은에 간단하게 할 수 있습니다.
대단히 감사합니다! 그리고 이것은 내 첫 번째 묻는 경험입니다 – iShow
+1 @ 마르크 ... 뛰어난 ... 이것은 내가 찾고있는 것입니다 ... –
오류가 발생합니다 : DocumentElement가 1.4 용 HtmlDocument 객체에 없습니다. 0.0 버전 HtmlAgilitypack foreach (doc.DocumentNode.SelectNodes ("// a [@href]")의 HtmlNode 링크) { HtmlAttribute att = link.Attributes [ "href"]; – Kiquenet
예제와 허용 된 대답이 잘못되었습니다. 최신 버전으로 컴파일되지 않습니다. 나는 다른 것을 시도 :
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();
}
이 작품은 나를 위해 작동합니다.
어쩌면 내가 대답을 게시하기에 너무 늦었을 것입니다. 다음은 나를 위해 일했다 :
var MainImageString = MainImageNode.Attributes.Where(i=> i.Name=="src").FirstOrDefault();
- 1. Agility Pack을 사용하여 클래스가 지정된 HTML에서 모든 요소 제거
- 2. html 중첩 테이블 agility 팩 유효한 xpath
- 3. HTML Agility Pack C#
- 4. HTML AGILity 팩의 노드 내부에서 innerText를 가져 오는 방법은 무엇입니까?
- 5. jquery 1.0.pack을 사용하여 webservice를 호출하는 방법은 무엇입니까?
- 6. Html Agility Pack이 잘못된 XPath를 반환합니다.
- 7. HtmlAgility Pack을 사용하여 특정 양식의 입력을 얻는 방법은 무엇입니까? Lang : C# .net
- 8. html simple dom을 사용하여 Content-type을 얻는 방법은 무엇입니까?
- 9. PHP와 XPath를 사용하여 HTML 요소의 값을 얻는 방법은 무엇입니까?
- 10. HTML 민첩성 팩을 사용하여 일부 또는 모든 HTML 요소 및/또는 속성을 제거하려면 어떻게합니까?
- 11. js로 html 문서 크기를 얻는 방법은 무엇입니까?
- 12. html 트리의 최대 깊이를 얻는 방법은 무엇입니까?
- 13. regex를 사용하여 기사의 제목을 얻는 방법은 무엇입니까?
- 14. Tk, .pack을 사용하여 레이아웃을 만드는 방법?
- 15. nokogiri를 사용하여 목록에서 'asin'태그를 얻는 방법은 무엇입니까?
- 16. Windows 7에서 .NET German Language Pack을 제거하는 방법은 무엇입니까?
- 17. php를 사용하여 URL에서 vars를 얻는 방법은 무엇입니까?
- 18. ASP.NET을 사용하여 Unix 파일을 얻는 방법은 무엇입니까?
- 19. PHP를 사용하여 MAC 주소를 얻는 방법은 무엇입니까?
- 20. js를 사용하여 최신 쿠키를 얻는 방법은 무엇입니까?
- 21. Linq를 사용하여 데이터베이스에서 ID를 얻는 방법은 무엇입니까?
- 22. 플래시를 사용하여 스크린 샷을 얻는 방법은 무엇입니까?
- 23. 런타임 바인딩을 사용하여 인스턴스를 얻는 방법은 무엇입니까?
- 24. 리플렉션을 사용하여 변수 이름을 얻는 방법은 무엇입니까?
- 25. get_value를 사용하여 objectName을 얻는 방법은 무엇입니까?
- 26. 리플렉션을 사용하여 기본 생성자를 얻는 방법은 무엇입니까?
- 27. opencv를 사용하여 뇌졸중의 경로를 얻는 방법은 무엇입니까?
- 28. Reflection을 사용하여 속성의 DisplayAttribute를 얻는 방법은 무엇입니까?
- 29. JMF를 사용하여 비디오 길이를 얻는 방법은 무엇입니까?
- 30. Spring에서는 ClassPathXmlApplicationContext를 사용하여 EntityManager를 얻는 방법은 무엇입니까?
그리고, Html 민첩성 팩은 상대 경로를 해결할 수 있습니까? – iShow