2012-08-13 3 views
0

href에서 링크를 추출하려고합니다. <a class="p_l" href="" id="0" target="_blank"> 이것은 페이지 뷰 소스에 표시되지만 방화 광을 사용하여 검사 할 때 href에는 http://home.website.com/preview/preview?uname=3eadsf132sdas이 포함됩니다. htmlagilitypack을 사용했지만 href가 null을 반환했습니다. href에서 링크를 추출하는 방법. 당신이 그것을 당신은 WebRequest 클래스 클래스를 사용하여 HTML 콘텐츠를 받고 같은 다른 무언가를 시도 할 수 이러한 방법href 콘텐츠를 얻는 방법

HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); 

     htmlDoc.OptionFixNestedTags=true; 

     htmlDoc.Load(filePath); 

foreach(HtmlNode link in htmlDoc.DocumentElement.SelectNodes("//a[@href"]) 
{ 
    if(link != null) 
    { 
     if(link["href"] != null) 
     { 
     HtmlAttribute att = link["href"]; 
     var url = att.Value; 
     } 
    } 
+1

빈 href는 "현재 URL이 무엇이든"을 의미하기 때문입니다. 민첩성 팩은 어디에서 HTML을 가져 왔는지 알 수 없습니다. – Jon

+0

링크를 추출 할 수 있습니까? href에서 링크를 얻는 방법. – Maddy

+0

@Maddy는 첫 번째 주석 작성자의 말을 되풀이하여 추출 할 내용이 없습니다. Firebug는 * 웹 브라우저가 알고있는 것을 보여줍니다. HTML 민첩성 팩은 * HTML 소스 *가 알고있는 것만 알고 있습니다. 브라우저는 HTML이로드 된 곳을 알고 있습니다. Html Agility Pack은 HTML을로드하지 않습니다. 방화범을 쳐다 보지 말고 "뷰 소스"를보십시오. 그것이 HAP이 실제로 보는 것입니다. –

답변

1

(방법 here 참조).

href에 링크가 없으면 Javascript 또는 다른 프로그래밍 언어를 사용하여 동적 콘텐츠를 추가 할 수 있습니다. 스크립트에 액세스 할 수 있다면 링크를 얻을 수있는 작은 기회가 있지만 그렇게 생각하지는 마십시오.

+0

HatSoft, 고맙지 만 DocumentElement에서 오류가 발생하고 DocumentNode를 사용하면 노드를 배열로 사용할 수 없다는 오류가 발생합니다. – Maddy

+0

@Maddy DocumentElement에 의해 던져진 오류는 무엇인가, 나는 항상 이것을 사용한다. – HatSoft

1

을 시도하십시오 것보다이 방법을 시도하지 않은 경우

관련 문제