как просматривать веб-сайт с помощью скрипта, чтобы получить информацию - PullRequest
1 голос
/ 10 октября 2009

Мне нужно написать скрипт, который будет заходить на веб-сайт, входить в систему, переходить на страницу и загружать (и после этого) HTML-код этой страницы.

Мне нужен автономный скрипт, а не скрипт, управляющий Firefox. Мне не нужна поддержка javascript в этой простой HTML-навигации.

Если нет ничего легкого сделать это ... ну, тогда что-то, что действует через веб-браузер (Firefox или Safari, я на Mac).

спасибо

Ответы [ 5 ]

1 голос
/ 10 октября 2009

Мне неизвестно о готовых скребках общего назначения, но вы можете найти их через Google.

Написание веб-скребка определенно выполнимо. В моем очень ограниченном опыте (я написал только пару), мне не нужно было иметь дело с проблемами входа в систему / безопасности, но в Googling вокруг я видел некоторые примеры, которые имели дело с ними - боюсь, я не помню URL для этих страниц , Мне нужно было знать некоторые особенности о страницах, которые я чистил; это облегчило написание скребка, но, конечно, скребки были ограничены для использования на этих страницах. Однако, если вы просто захватываете всю страницу, вам могут понадобиться только URL-адреса соответствующих страниц.

Не зная, какой язык (языки) будет приемлем для вас, трудно помочь намного больше. FWIW, я сделал скребки в PHP и Python. Как сказал Бен Г., у PHP есть cURL, чтобы помочь с этим; может быть, есть и другие, но я не очень хорошо знаю PHP. В Python есть несколько модулей, которые вы можете выбрать, включая lxml , BeautifulSoup и HTMLParser .

Редактировать: Если вы работаете в Unix / Linux (или, я полагаю, CygWin), вы можете достичь желаемого с помощью wget .

0 голосов
/ 10 октября 2009

Я недавно сделал именно то, что вы просите в проекте C #. Если требуется вход в систему, ваш первый запрос, скорее всего, будет постом и включает учетные данные. Ответ обычно включает файлы cookie, которые сохраняют идентичность при последующих запросах. Используйте Fiddler , чтобы посмотреть, какие данные формы (имена полей и значения) публикуются на сервере при обычном входе в систему с помощью браузера. Получив это, вы можете создать HttpWebRequest с данными формы и сохранить куки-файлы из ответа в CookieContainer.

Следующий шаг - запросить контент, который вам действительно нужен. Это будет еще один запрос HttpWebRequest с прикрепленным CookieContainer. Ответ может быть прочитан StreamReader, который вы можете затем прочитать и преобразовать в строку.

Каждый раз, когда я делал это, обычно был довольно трудоемкий процесс идентификации всех соответствующих данных формы и повторного создания запросов вручную. Используйте Fiddler и сравнивайте запросы, которые ваш браузер делает при обычном использовании сайта, с запросами, исходящими от вашего скрипта. Вам также может понадобиться манипулировать заголовками запроса; опять же, используйте Fiddler, чтобы сконструировать их вручную, чтобы они правильно отправляли и получали ответ, как вы ожидаете, а затем кодируйте его. Удачи!

0 голосов
/ 10 октября 2009

Это, вероятно, глупый вопрос, так как я не знаю ни макинтоша, но о каком языке мы говорим здесь, а также это веб-сайт, который вы контролируете, или что-то вроде робота-паука, который Google может использовать при проверке содержание страницы? Я знаю, что в C # вы можете загружать объекты на других сайтах, используя HttpWebRequest и потоковый ридер ... В java-скрипте (это действительно будет работать, только если вы знаете, что там ДОЛЖНО быть), вы можете открыть веб-страницу как источник iframe, и с помощью java-скрипта просмотрите содержимое всех элементов на странице ... или, что еще лучше, используйте jquery.

0 голосов
/ 10 октября 2009

Мне нужно написать скрипт, который будет заходить на веб-сайт, входить в систему, переходить на страницу и загружать (и после этого) HTML-код этой страницы.

Для меня это звучит как запрос POST или GET, чтобы URL-адрес страницы входа мог выполнять эту работу. С правильными параметрами имени пользователя и пароля (в зависимости от имен ввода формы, используемых на странице), установленных в запросе В результате вы получите HTML-код страницы, которую затем сможете анализировать по своему усмотрению.

Это можно сделать практически на любом языке. Какой язык вы хотите использовать?

0 голосов
/ 10 октября 2009

Если вы хотите использовать PHP, вы можете использовать функции cURL для создания собственного простого скребка веб-страницы.

Чтобы узнать, как начать, см .: http://us2.php.net/manual/en/curl.examples-basic.php

...