почему я не могу использовать urllib2.urlopen для сайта википедии?


person Hanfei Sun    schedule 05.08.2012    source источник
comment
проверьте их (robots.txt) страницу [zh.wikipedia.org/robots.txt] чтобы узнать, забанен ли используемый вами бот   -  person elssar    schedule 05.08.2012


Ответы (2)


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

В вики-сайтах Викимедиа, если вы не предоставите заголовок User-Agent или предоставите пустой или общий заголовок, ваш запрос завершится ошибкой HTTP 403. См. нашу политику User-Agent. Другие установки MediaWiki могут иметь аналогичные политики.

Так что просто добавьте в свой код пользовательский агент, и он должен работать нормально.

person elssar    schedule 05.08.2012

Попробуйте загрузить страницу с wget из cURL.
Если вы не можете, то у вас могут быть проблемы с сетью.
Если вы можете, то Википедия может заблокировать определенные пользовательские агенты. В этом случае используйте add_header urllib2 для определения настраиваемого пользовательского агента. (для имитации запроса браузера).

person EyalAr    schedule 05.08.2012
comment
не нужно имитировать запрос браузера, можно просто использовать настраиваемый пользовательский агент. Я получил результаты при использовании пользовательского агента elssar-at-elssar-laptop. - person elssar; 05.08.2012