Html Agility Pack, веб-скребок [дубликат]

Для лучшего понимания я написал похожий запрос MySQL.

Selecting specific fields 

MongoDB: db.collection_name.find ({}, {name: true, email: true, phone: true} );

MySQL: имя SELECT, адрес электронной почты, телефон FROM table_name;

Selecting specific fields with where clause

MongoDB: db.collection_name.find ({email: 'you @ email.com '}, {name: true, email: true, phone: true});

MySQL: имя SELECT, адрес электронной почты, телефон FROM table_name WHERE email =' you@email.com ';

9
задан bjb568 10 June 2014 в 05:47
поделиться

2 ответа

Когда вы делаете WebRequest, вы просите сервер предоставить вам файл с образцом, содержимое этого файла еще не было разобрано / выполнено веб-браузером, и поэтому javascript на нем еще ничего не сделал.

Вам нужно использовать инструмент для выполнения JavaScript на странице, если вы хотите увидеть, как выглядит страница после анализа в браузере. Один из вариантов - использование встроенного веб-браузера .net: http://msdn.microsoft.com/en-au/library/aa752040 (v = vs.85) .aspx

Элемент управления веб-браузером может перемещаться и загружать страницу, а затем вы можете запросить его DOM, который будет изменен JavaScript на странице.

EDIT (пример):

Uri uri = new Uri("http://www.somewebsite.com/somepage.htm");

webBrowserControl.AllowNavigation = true;
// optional but I use this because it stops javascript errors breaking your scraper
webBrowserControl.ScriptErrorsSuppressed = true;
// you want to start scraping after the document is finished loading so do it in the function you pass to this handler
webBrowserControl.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowserControl_DocumentCompleted);
webBrowserControl.Navigate(uri);

private void webBrowserControl_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    HtmlElementCollection divs = webBrowserControl.Document.GetElementsByTagName("div");

    foreach (HtmlElement div in divs)
    {
        //do something
    }
}
10
ответ дан Pandepic 25 August 2018 в 18:18
поделиться

Вы можете взглянуть на такой инструмент, как Selenium, на соскабливание страниц с Javascript.

http://www.andykelk.net/tech/headless-browser-testing-with-phantomjs-selenium-webdriver-c-nunit-and-mono

4
ответ дан vikramsk 25 August 2018 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: