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

Если вы изучите код состояния ответа, вы увидите, что это 301, которое является перенаправлением (перемещено навсегда). Изучив заголовки ответа, вы можете увидеть, что новое местоположение - http://iteratrlearning.com. Это перенаправление на другой сайт, поэтому по умолчанию HttpClient не будет переходить по этой ссылке (перенаправление на разные сайты часто может использоваться для мошенничества).

Вы можете настроить HttpClient так, чтобы он всегда следовал перенаправлению, если хотите, но я бы не рекомендовал его вне целей тестирования или когда вы доверяете исходному сайту (вы можете использовать HttpClient::followRedirect(Redirect.ALWAYS))

8
задан Björn 28 January 2009 в 14:23
поделиться

5 ответов

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

Вы могли создать .aspx (или PHP и т.д.) бэкэнд, который обрабатывает данные POST и хранит их в базе данных.

Любые данные, которые Вы хотите от единственной страницы, могут храниться в форме (скрытые свойства стиля использования, если Вы хотите), с помощью имен полей или идентификатор для идентификации данных. Затем все, что необходимо сделать, делают действие формы .aspx страницей и отправляют форму с помощью JavaScript.

(Кроме того, Вы могли добавить кнопку отправки к странице, позволив Вам проверить значения формы прежде, чем отправить базе данных).

4
ответ дан 5 December 2019 в 20:20
поделиться

Я думаю, что необходимо сначала спросить себя, почему Вы хотите использовать Механика для своей конкретной проблемы. Механик был разработан как способ изменить навигацию - не как поисковый робот. В то время как Вы смогли заставлять Механика делать это использование GM_setValue, я думаю, что Вы найдете свое решение быть топорными и твердыми разработать. Это, и будет требоваться много ручных шагов (как открытие всех тех вкладок, очистка переменных Механика между выполнениями Вашего сценария, и т.д.).

Что-нибудь Вы делаете, требуют, чтобы JavaScript на странице был выполнен? Если так, можно хотеть рассмотреть использование Perl и WWW:: Механизируйте:: Плагин:: JavaScript. Иначе я рекомендовал бы сделать все это в простом сценарии Python. Вы захотите смотреть на urllib2 модуль. Например, смотрите на следующий код (обратите внимание, что он использует cookielib для поддержки cookie, в которых Вы будете, скорее всего, нуждаться, если Ваш сценарий потребует, чтобы Вы были зарегистрированы в сайт):

import urllib2
import cookielib
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
response = opener.open("http://twitter.com/someguy")
responseText = response.read()

Затем можно сделать всю обработку, Вы хотите использовать регулярные выражения.

2
ответ дан 5 December 2019 в 20:20
поделиться

Вы рассмотрели Google Gears? Это предоставило бы Вам доступ к локальной базе данных SQLite, в которой можно сохранить большие объемы информации.

1
ответ дан 5 December 2019 в 20:20
поделиться

Причина, по которой вам нужен Greasemonkey , заключается в том, что сканируемая страница не одобряет роботов. Greasemonkey казался самым простым способом сделать поисковый робот выглядит законным.

На самом деле заражение вашего сканера через браузер не делает его более легитимным. Вы все еще нарушаете условия использования сайта! WWW :: Mechanize, например, одинаково хорошо подходит для «подделки» строки вашего агента пользователя, но это и сканирование, если сайт не допускает пауков / сканеров, незаконны!

1
ответ дан 5 December 2019 в 20:20
поделиться

Причина, по которой greasemonkey нужна, заключается в том, что страница, которую нужно сканировать, на самом деле не одобряет роботов. Greasemonkey казался самым простым способом сделать гусеничный робот законным.

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

Кроме того, некоторые сайты имеют эвристику, которая ищет клиентов, которые ведут себя как пауки, поэтому простое создание запросов, похожих на браузер, не означает, что вы не будете знать, что вы делаете.

0
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

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