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

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

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

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

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

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

  • Почему декодер python заменяет более чем недопустимые байты из кодированной строки?
  • Оцените javascript в локальном html-файле (без браузера)
  • Как визуализировать содержимое тега в юникоде в BeautifulSoup?
  • Вращающиеся прокси для веб-соскабливания
  • Регулярное выражение Python для разбора HTML (BeautifulSoup)
  • Beautiful Soup не может найти класс CSS, если объект имеет другие классы, тоже
  • Выполнение Javascript с Python
  • Может ли соскабливаться на этой странице, которая активно пересчитывается?
  • 8 Solutions collect form web for “Скребок экрана: обойти «Ошибка HTTP 403: запрос, запрещенный robots.txt»”

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

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

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

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

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

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

     browser.set_handle_equiv(False) 

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

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

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

    Задайте заголовок 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) 

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

     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 

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

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

    Python - лучший язык программирования в мире.