запросы blackle.com - PullRequest
       2

запросы blackle.com

0 голосов
/ 01 октября 2009

Я пытаюсь запросить blackle.com для поиска, но я получаю ошибку 403 HTTP Может кто-нибудь указать, что здесь не так?

#!/usr/bin/env python

import urllib2
ss = raw_input('Please enter search string: ')
response = "http://www.google.com/cse?cx=013269018370076798483:gg7jrrhpsy4&cof=FORID:1&q=" + ss + "&sa=Search"
urllib2.urlopen(response)
html = response.read()

print html

1 Ответ

2 голосов
/ 02 октября 2009

HTTP 403 означает «запрещено» (подробное объяснение см. здесь ): google.com не хочет разрешать вам доступ к этому ресурсу. Так как он позволяет браузерам получать к нему доступ, вероятно, он идентифицирует вас как робота (автоматизированный код, а не интерактивный пользовательский браузер), посредством проверки пользовательского агента и т.п. Вы проверили robots.txt, чтобы узнать, ДОЛЖЕН ли вам быть разрешен доступ к таким URL? В http://www.google.com/robots.txt вижу одну строку:

Disallow: /cse?

, что означает, что роботы здесь НЕ разрешены. См. здесь для объяснения robots.txt, здесь для стандартного библиотечного модуля Python roboparser, который облегчает программе Python понимание файла robots.txt.

Вы можете попытаться обмануть обнаружение в Google "роботов" против людей, например. фальсифицируя заголовок вашего пользовательского агента и так далее, и, возможно, вам какое-то время это сойдет с рук, но вы действительно хотите намеренно нарушать условия использования и вступать в борьбу с этим с помощью Google ...?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...