HtmlAgilityPack-Xpath, RegExp를 사용하여 HTML 문서 구문 분석

html-agility-pack xpath

문제

htmlAgilityPack 함께 html 이미지 URL을 구문 분석 해보십시오. HTML 문서에는 img 태그가 있습니다.

<a class="css_foto" href="" title="Fotka: MyKe015">
   <span>
      <img src="http://213.215.107.125/fotky/1358/93/v_13589304.jpg?v=6" 
           width="176" height="216" alt="Fotka: MyKe015" />
   </span>
</a>

이 img 태그 atribute src에서 가져와야합니다. 나는 이것을 필요로한다 : http://213.215.107.125/fotky/1358/93/v_13589304.jpg?v=6.

나는이 사실을 알고:

  1. Src atribute는 url로 구성되어 있으며 url은 http://213.215.107.125/fotky로 시작합니다.
  2. alt 속성의 값을 알고 URL은 가변 길이를 가지고 있으며 HTML 문서는 http://213.215.107.125/fotky로 시작하는 url을 가진 다른 img 태그로 구성됩니다.
  3. 나는 img 태그 (Fotka : Myke015)의 alt 속성을 알고있다.

어떤 진보, 나는 여러 가지 방법을 시도하지만 아무 것도 잘 작동하지 않습니다.

마지막으로 해보겠습니다.

    List<string> src;

    var req = (HttpWebRequest)WebRequest.Create("http://pokec.azet.sk/myke015");
    req.Method = "GET";

    using (WebResponse odpoved = req.GetResponse())
    {
        var htmlDoc = new HtmlAgilityPack.HtmlDocument();
        htmlDoc.Load(odpoved.GetResponseStream());

        var nodes = htmlDoc.DocumentNode.SelectNodes("//img[@src]");
        src = new List<string>(nodes.Count);

        if (nodes != null)
        {
            foreach (var node in nodes)
            {
                if (node.Id != null)
                    src.Add(node.Id);
            }
        }
    }

인기 답변

당신의 XPath는 그것들에 속한 src 속성이 아닌 img 노드를 선택한다.

대신 ( src 속성이있는 모든 이미지 태그를 선택) :

var nodes = htmlDoc.DocumentNode.SelectNodes("//img[@src]");

이것을 사용하십시오 (모든 img 요소의 하위 노드 인 src 속성을 선택하십시오).

var nodes = htmlDoc.DocumentNode.SelectNodes("//img/@src");


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.