Подтвердить что ты не робот

Скребок экрана: обойти "Ошибка HTTP 403: запрос, запрещенный robots.txt"

Есть ли способ обойти следующее?

httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt

Единственный способ связаться с владельцем сайта (barnesandnoble.com). Я создаю сайт, который принесет им больше продаж, а не уверен, почему они откажут доступ на определенной глубине.

Я использую mechanize и BeautifulSoup на Python2.6.

надеясь на обход

4b9b3361

Ответ 1

Вы можете попробовать лгать о своем пользовательском агенте (например, пытаясь поверить, что вы человек, а не робот), если вы хотите попасть в возможные юридические проблемы с Barnes and Noble. Почему бы вам вместо этого не связаться с отделом развития бизнеса и не убедить их в санкционировании? Они, без сомнения, просто пытаются избежать того, чтобы их сайт был соскоблен некоторыми классами роботов, таких как двигатели сравнения цен, и если вы можете убедить их, что вы не являетесь одним из них, подписываете контракт и т.д., Они могут быть готовы сделать исключение для вас.

"Техническое" обходное решение, которое просто нарушает их политику, закодированное в robots.txt, - это подход с высоким уровнем юридического риска, который я бы никогда не рекомендовал. Кстати, как читается их robots.txt?

Ответ 2

oh вам нужно игнорировать файл robots.txt

br = mechanize.Browser()
br.set_handle_robots(False)

Ответ 3

Механизировать автоматически следует за robots.txt, но его можно отключить, если у вас есть разрешение, или вы считали этику через.

Установите флаг в браузере:

browser.set_handle_equiv(False) 

Это игнорирует файл robots.txt.

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

Ответ 4

Ошибка, которую вы получаете, не связана с пользовательским агентом. Механизировать по умолчанию проверяет директивы robots.txt автоматически, когда вы используете его для перехода на сайт. Используйте метод .set_handle_robots (false) метода mechanize.browser, чтобы отключить это поведение.

Ответ 5

Установите заголовок User-Agent, чтобы он соответствовал реальному пользовательскому агенту IE/FF.

Здесь моя строка useragent IE8:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; AskTB5.6)

Ответ 6

Код для правильного запроса:

br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
resp = br.open(url)
print resp.info()  # headers
print resp.read()  # content

Ответ 7

Не обсуждая этику этого вопроса, вы можете изменить заголовки, чтобы выглядеть, например, как googlebot или заблокирован googlebot?

Ответ 8

Как вам кажется, вам нужно сделать меньше работы, чтобы обойти robots.txt, по крайней мере, говорит об этой статье. Поэтому вам может потребоваться удалить какой-либо код, чтобы игнорировать фильтр.