Существует ли способ обойти следующее?
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
Единственный путь вокруг этого для контакта с владельцем сайта (barnesandnoble.com).. я создаю сайт, который принес бы им больше продаж, не уверенных, почему они запретят доступа на определенной глубине.
Я использую, механизируют и BeautifulSoup на Python2.6.
надежда на обходное решение
Если вы хотите получить в возможных юридических проблемах с Barnes & Noble. Почему бы вместо этого не связаться с их отделом развития бизнеса и не убедить их предоставить вам конкретное разрешение? Они, без сомнения, просто пытаются избежать того, чтобы их сайт обрабатывали некоторые классы роботов, такие как системы сравнения цен, и если вы можете убедить их, что вы не один из них, подписать контракт и т. Д., Они вполне могут быть готовы сделать исключение для вас.
«Технический» обходной путь, который просто нарушает их политики, закодированные в robots.txt, представляет собой подход с высоким юридическим риском, который я бы никогда не рекомендовал. Кстати, как читает их robots.txt ?
Не обсуждая этические вопросы, вы можете изменить заголовки, чтобы они выглядели как googlebot например, или робот Google тоже заблокирован?
Mechanize автоматически следует за файлом robots.txt, но его можно отключить, если у вас есть разрешение или вы продумали этические нормы.
Установите флаг в своем браузере:
browser.set_handle_equiv(False)
Это игнорирует robots.txt.
Также убедитесь, что вы ограничиваете количество запросов, чтобы не перегружать их сайт. (Обратите внимание, это также снижает вероятность того, что они обнаружат и забанят вас).
Задайте заголовок User-Agent
так, чтобы он соответствовал реальному пользовательскому агенту IE / FF.
Вот моя строка агента пользователя 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)
Похоже, вам нужно меньше работать, чтобы обойти robots.txt
, , по крайней мере, говорится в этой статье . Поэтому вам, возможно, придется удалить код, чтобы игнорировать фильтр.
Ошибка, которую вы получаете, не связана с агентом пользователя. mechanize по умолчанию автоматически проверяет директивы robots.txt, когда вы используете его для перехода на сайт. Используйте метод .set_handle_robots(false) в mechanize.browser, чтобы отключить это поведение.