HtmlAgilityPack - как получить <DIV>данных на большой веб-странице - PullRequest
1 голос
/ 01 июля 2011

Я пытаюсь получить данные с веб-страницы, <DIV> определенный класс <DIV class="personal_info">, он имеет 10 похожих <DIV> S и имеет тот же класс "Personal_info" (как показано в коде HTML, и теперь я хочу извлечьвсе DIVs класса personal_info, которые находятся в 10-15 на каждой веб-странице.

<div class="personal_info"><span class="bold">Rama Anand</span><br><br> Mobile: 9916184586<br>rama_asset@hotmail.com<br> Bangalore</div>

, чтобы сделать все необходимое, я начал использовать HTML AGILE PACK, как это было предложено кем-то из переполнения стека ия застрял в самом начале, потому что из-за нехватки знаний в HtmlAgilePack мой код на C # выглядит следующим образом

HtmlAgilityPack.HtmlDocument docHtml = new HtmlAgilityPack.HtmlDocument();
        HtmlAgilityPack.HtmlWeb docHFile = new HtmlWeb();

        docHtml = docHFile.Load("http://127.0.0.1/2.html");

, а затем как кодировать дальше, чтобы можно было захватить данные из DIV, класс которого "personal_info",Предложение с примером будет оценено

Ответы [ 3 ]

2 голосов
/ 01 июля 2011

Чтобы загрузить URL, вы можете сделать что-то вроде:

 var document = new HtmlAgilityPack.HtmlDocument(); 
 var url = "http://www.google.com";
 var request = (HttpWebRequest)WebRequest.Create(url);
 using (var responseStream =  request.GetResponse().GetResponseStream())
 {
   document.Load(responseStream, Encoding.UTF8);
 }

Также обратите внимание, что в паке Agility есть вилка, позволяющая использовать селекторы jquery.

IEnumerable<HtmlNode> myList = document.QuerySelectorAll(".personal_info");

http://yosi -havia.blogspot.com / 2010/10 / с использованием-JQuery-селекторы-на-сервере-sidec.html

2 голосов
/ 01 июля 2011

Я не могу проверить это сейчас, но не так ли:

var infos = from info in docHtml.DocumentNode.SelectNodes("//div[@class='personal_info']") select info; 
0 голосов
/ 01 июля 2011

Что случилось с Куда?

node.DescendantNodes().Where(node_it => node_it.Name=="div");

если вы хотите верхний узел (корень), вы используете page.DocumentNode как "узел".

...