Создание простого «паука» - PullRequest
0 голосов
/ 16 января 2009

Я исследовал паутинга и думаю, что это слишком сложно для довольно простого приложения, которое я пытаюсь сделать. Некоторые данные на веб-странице недоступны для просмотра в источнике, поскольку они просто отображаются браузером.

Если я хотел получить значение с определенной веб-страницы, которую я должен был отображать в элементе управления WebBrowser, есть ли какой-либо метод для считывания значений из содержимого этого браузера?

Если нет, есть ли у кого-нибудь предложения о том, как они могут подойти к этому?

Ответы [ 3 ]

3 голосов
/ 16 января 2009

Вы не ищете spidering , вы ищете очистка экрана .

2 голосов
/ 16 января 2009

Я должен был бы согласиться с Bombe, это звучит так, как будто вы хотите использовать HTML Screen Scraping. Требуется много разборов, и если страница, которую вы просматриваете, когда-либо изменяется, ваше приложение сломается, однако вот небольшой пример того, как это сделать:

WebClient webClient = new WebClient(); 
const string strUrl = "http://www.yahoo.com/"; 
byte[] reqHTML; 
reqHTML = webClient.DownloadData(strUrl); 
UTF8Encoding objUTF8 = new UTF8Encoding(); 
string html = objUTF8.GetString(reqHTML); 

Теперь переменная html содержит весь HTML, и вы можете начать анализ.

0 голосов
/ 16 января 2009

Поскольку браузер просто отображает базовый контент, наиболее гибкий подход заключается в том, чтобы самостоятельно проанализировать базовый контент (html / css / js / что угодно).

Я бы создал механизм синтаксического анализа, который ищет то, что нужно вашему приложению-пауку.

Это может быть базовый алгоритм поиска строк, который, например, ищет href = "" и считывает значения для создания новых запросов и продолжения паутинга. Ваш движок может быть написан так, чтобы искать только те вещи, которые его интересуют, и расширены таким образом для большей функциональности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...