2013-12-18 5 views
1

저는 HTML 민첩성 팩을 완전히 초보자입니다. C#에서 HTML 민첩성 팩을 사용하여 어떻게 그 내용 (프록시)을 얻을 수 있습니까?HTML 민첩성 팩을 사용하여 콘텐츠를 긁는 방법

내 코드 :

string url = "http://www.proxybase.de/"; 
     HtmlWeb web = new HtmlWeb(); 
     HtmlAgilityPack.HtmlDocument doc = web.Load(url); 
     var nodes = doc.DocumentNode.SelectNodes("//table[@border='0' and @cellspacing='0' and @cellpadding='0']"); 

     if (nodes != null) 
     { 
      foreach (HtmlNode item in nodes) 
      { 
       if (item != null) 
       { 
        string s = item.InnerText; 
        listView1.Items.Add(s); 
       } 
      } 
     } 
     else 
     { 
      MessageBox.Show("Nothing found"); 
     } 

html로이 좋아 보일 것입니다 ...

<table border="0" cellpadding="0" cellspacing="0"> 
<tbody> 
    <tr>...</tr> //Ignore first one 
    <tr> 
    <td>...</td> 
    <td style="padding-left:5px;border-left;1px solid #999;"> 123.45.678.90:80 </td> 
    <td style="padding-left:5px;border-left;1px solid #999;">...</td> 
    </tr> 
</tbody> 
</table> 

업데이트 :

은 어떻게 선택 SelectSingleNode을 사용할 수 있습니다 티 인덱스 배열이 가능한 데이터?

답변

0
HtmlWeb hw = new HtmlWeb(); 
     hw.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"; 
     hw.PreRequest = new HtmlAgilityPack.HtmlWeb.PreRequestHandler(p.ProxyOnPreRequest); // this is proxy request 
     HtmlAgilityPack.HtmlDocument doc = hw.Load(openUrl); 

    public bool ProxyOnPreRequest(HttpWebRequest request) 
    { 
     WebProxy myProxy = new WebProxy("203.189.134.17:80"); 
     request.Proxy = myProxy; 
     return true; // ok, go on 
    } 
1

나는 당신이 그런 파일이나 데이터베이스에 IP 주소 등으로, 웹 사이트의 정보를 저장할 필요가 있다고 생각

위에서 해당하는 경우는 거의가이 그것을 해결해야 :

string url = "http://www.proxybase.de/"; 
    HtmlWeb web = new HtmlWeb(); 
    HtmlAgilityPack.HtmlDocument doc = web.Load(url); 
    foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//td[@style='padding-left:5px;border-left;1px solid #999;'")) 
    { 
     String s = HtmlNode.InnerText; 
     //Now the IP address is stored in s. 
     //You can either put it in a file/database or a webpage :) 
    } 
+0

예에서 오타가 수정되었습니다. 그것은'// tr' 대신'// td'이어야합니다. –

+0

Karl에게 감사드립니다. – RinikS

관련 문제