HTML 민첩성 팩을 사용하는 XPath 쿼리 문제

c# html-agility-pack xpath

문제

HTML 애자일 팩을 사용 하여이 웹 사이트 에서 가격 필드를 긁어 내려고합니다.

내 코드는 다음과 같습니다.

var web = new HtmlWeb();
var doc = web.Load(String.Format(overClockersURL, componentID));
var priceContent = doc.DocumentNode.SelectSingleNode("//*[@id=\"prodprice\"]");

Firebug의 " XPath로 복사 "기능을 사용하여 XPath 쿼리를 얻었습니다.

내가 가지고있는 문제는 SelectSingleNodenull을 반환한다는 것입니다. 쿼리에서 지정한 요소를 찾지 못하는 것 같습니다. 왜 그런지 잘 모르겠지만 XPath에 대한 많은 경험이 없으므로 잘못된 점을 지적 해 주시면 감사하겠습니다.

수락 된 답변

그렇게되면 페이지가 제대로로드되고 있는지 확인해야합니다 (HTTP 프록시를 사용한다고 말했습니까?).

페이지가 올바르게로드되고 있는지 확인할 수 있도록 doc.DocumentNode.OuterHtml 의 내용을 텍스트 파일에 쓰십시오. 원래 페이지 대신 오류 페이지가 표시 될 수 있습니다.


인기 답변

이 코드를 실행하면 :

    var web = new HtmlWeb();
    var doc = web.Load("http://www.overclockers.co.uk/showproduct.php?prodid=GX-033-HS");
    var priceContent = doc.DocumentNode.SelectSingleNode("//*[@id=\"prodprice\"]");
    Console.WriteLine("price=" + priceContent.InnerHtml);

그것은 출력 :

price=529.99

그래서 그것은 작동하는 것 같습니다. //span[@id=\"prodprice\"]" 를 사용하여 SPAN이 아닌 태그를 모두 피할 수 있으므로 더 좋습니다.




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