2015-01-04 3 views
2

Я столкнулся с несколькими сайтами, которые, когда я пытался извлечь код, возвращают метатаг ROBOTS и продолжают это делать даже при попытке использовать Mechanize. В качестве примера:Механизируйте возвращение robot.txt, несмотря на то, что он установлен для игнорирования

import mechanize 
br = mechanize.Browser() 
br.set_handle_robots(False) 
br.open("http://myanimelist.net/anime.php?letter=B") 
response = br.response().read() 

Я попытался установить заголовки и настройки других рукояток, но никогда не получить ответ, разве на метатега Robots.

Любая помощь была бы принята с благодарностью, спасибо.

Edit:

Попытка предлагаемые заголовки ниже:

import mechanize 
url = "http://myanimelist.net/anime.php?letter=B" 

br = mechanize.Browser() 
br.set_handle_robots(False) 
br.addheaders=[('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36  (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'), 
     ('Host', 'myanimelist.net'), 
     ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'), 
     ('Accept-Encoding', 'gzip, deflate, sdch'), 
     ('Accept-Language', 'en-US,en;q=0.8,ru;q=0.6'), 
     ('Cache-Control', 'max-age=0'), 
     ('Connection', 'keep-alive')] 
br.open(url) 
response = br.response().read() 
print response 

Я все еще получаю ту же Robots метатега. Я добавляю заголовки неправильно, или я просто застрял в CAPTCHA?

Благодарим за помощь, я ценю это.

ответ

1

Насколько я понимаю set_handle_robots() только о следовании правилам, перечисленным в robots.txt:

def set_handle_robots(self, handle): 
    """Set whether to observe rules from robots.txt.""" 

Что вы, кстати, должны уважать и быть хорошим веб-соскоб гражданин.


Они, однако, очень строгие в отношении веб-соскабливания - вы получаете легко и легко настраиваетесь - будьте осторожны. FYI, они защищены Incapsula, которая имеет расширенный Bot Protection:

Используя передовые технологии классификации клиента, краудсорсинг и репутации на основе методов, Incapsula различает «хорошее» и «плохих» бот-трафика. Это позволяет блокировать скребки, уязвимости сканеры и спамеры со спамом, которые перегружают ваши серверы и крадут ваш контент, позволяя поисковым системам и другим законным службам бесплатно получить доступ к вашему сайту.

Другой важный «FYI», цитата из "Terms of Use":

Вы соглашаетесь не использовать и не запускать любые автоматизированные системы, в том числе без ограничения, «роботов», «пауков», «автономных читателей , «и т. д.», что обращается к Сервису таким образом, что отправляет больше сообщений о запросах на серверы Компании, чем человек, может разумно производить в том же периоде времени с помощью обычного он-лайн веб-браузера, и вы согласны не собирать или сопоставлять любой доступный контент. ough Служба для использования в другом месте. Вы также соглашаетесь не собирать или собирать какую-либо личную информацию, включая учетную запись или имена профилей, из Сервиса или использовать системы связи , предоставленные Сервисом для любых коммерческих целей.

Который приводит к моему фактическому ответу: есть official API предоставленный, используйте его. Оставайтесь на законных основаниях.