регулярное выражение: мои текстовые данные с других сайтов - PullRequest
0 голосов
/ 07 октября 2010

Я хочу пролистать, скажем, сайты других компаний, например, об автомобилях, и извлечь информацию только для чтения из моей локальной базы данных. Тогда я хочу иметь возможность отображать эту собранную информацию на моем сайте. Чисто с технологической точки зрения, есть ли уже инструмент .net, программа и т. Д., Которые достаточно универсальны для моей цели. Или я должен написать это с нуля?

Чтобы сделать это эффективно, мне может понадобиться работа WCF, которая просто добывает данные на постоянной основе и обновляет базу данных, которая затем предоставляет данные для веб-сайта.

Кроме того, есть ли способ маскировать мои звонки на эти сайты? Буду ли я создавать «нагрузку на трафик» для моих целевых сайтов? Повлияет ли это на их функциональность, если я просто безобидно сканирую их?

Как мне сделать так, чтобы мой запрос выглядел как "человек" вместо того, чтобы исходить от Кроулера?

Существуют ли примеры кода о том, как использовать библиотеку, которая анализирует дерево DOM?

Могу ли я отправить запрос на определенный сайт и получить ответ с точки зрения DOM с контролем WebBrowser?

Ответы [ 5 ]

1 голос
/ 07 октября 2010

Используйте HtmlAgilityPack для анализа HTML. Затем используйте службу Windows (не WCF), чтобы запустить длительный процесс.

0 голосов
/ 07 октября 2010

Не существует универсального инструмента, который извлек бы данные из Интернета для вас.Это не тривиальная операция.В целом, сканирование страниц не так сложно.Но удаление / извлечение необходимого вам контента затруднительно.Эта операция должна быть настроена для каждого веб-сайта.

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

Я также видел сценарии Perl, разработанные для извлечения данных с определенных веб-страниц.Они могут быть очень эффективными в зависимости от сайта, который вы анализируете.

Если вы заходите на сайт слишком часто, вас забанят (хотя бы временно).

Чтобы скрыть свой IP, вы можете попробовать http://proxify.com/

0 голосов
/ 07 октября 2010

Я использую фантастически гибкий инструмент Visual Web Ripper .Вывод в Excel, SQL, текст.Ввод от того же.

0 голосов
/ 07 октября 2010

Насколько влияет на целевой сайт, это полностью зависит от сайта.Если вы сканируете stackoverflow достаточно много раз достаточно быстро, они заблокируют ваш ip.Если вы сделаете то же самое с Google, они начнут просить вас ответить на капчи.Большинство сайтов имеют ограничения скорости, поэтому вы можете запрашивать запрос только так часто.

Что касается удаления данных со страницы, никогда не используйте регулярные выражения, это повторяется снова и снова.Вы должны использовать либо библиотеку, которая анализирует дерево DOM, либо свернуть свою собственную, если хотите.В моем предыдущем стартапе мы решили написать промежуточный язык шаблонов, который сообщал бы нашему скребку, где находятся данные на странице, чтобы мы знали, какие данные и какой тип данных мы извлекали.Трудная часть, которую вы найдете, - это постоянно меняющиеся и изменяющиеся данные.После того, как у вас работает парсер, требуется постоянная работа, чтобы он продолжал работать даже на одном и том же сайте.

0 голосов
/ 07 октября 2010

Я не знаю, как бы вы повлияли на целевой сайт, но один изящный способ генерировать трафик, похожий на человеческий, - это управление браузером WinForms.Я использовал его пару раз, чтобы получить что-то из Википедии, потому что мой обычный режим использования HttpWebRequest для выполнения HTTP был помечен нечеловеческим фильтром, и я был заблокирован.

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