2010-11-30 3 views
0

Я использую python urllib2 для загрузки страниц из Интернета. Я не использую какой-либо user_agent и т. Д. Я получаю ниже выборочных ошибок. Может ли кто-нибудь сказать мне простой способ избежать их.Python urllib2, как избежать ошибок - нужна помощь

http://www.rottentomatoes.com/m/foxy_brown/ 
The server couldn't fulfill the request. 
Error code: 403 


http://www.spiritus-temporis.com/marc-platt-dancer-/ 
The server couldn't fulfill the request. 
Error code: 503 

http://www.golf-equipment-guide.com/news/Mark-Nichols-(golfer).html!! 
The server couldn't fulfill the request. 
Error code: 500 


http://www.ehx.com/blog/mike-matthews-in-fuzz-documentary!! 
We failed to reach a server. 
Reason: timed out 
IncompleteRead(5621 bytes read) 
Traceback (most recent call last): 
    File "download.py", line 43, in <module> 
    localFile.write(response.read()) 
    File "/usr/lib/python2.6/socket.py", line 327, in read 
    data = self._sock.recv(rbufsize) 
    File "/usr/lib/python2.6/httplib.py", line 517, in read 
    return self._read_chunked(amt) 
    File "/usr/lib/python2.6/httplib.py", line 563, in _read_chunked 
    raise IncompleteRead(value) 
IncompleteRead: IncompleteRead(5621 bytes read) 

Спасибо
Bala

ответ

0

Многие веб-ресурсы требуют какого-то печенья или другой аутентификации для доступа, ваши 403 кодов статуса, скорее всего, результат этого.

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

500 пример даже не по всей видимости, существует ...

Ошибка тайм-аут не может нужен «!!», я могу только загрузить ресурс без него.

Я рекомендую вам ознакомиться с кодами статуса http.

0

Для этих более сложных задач вам может потребоваться использование механизации, саржа или даже селена или ветряной мельницы, которая будет поддерживать более скомпенсированные сценеры, включая поддержку файлов cookie или javascript.

Для случайного веб-сайта может быть сложно работать только с urllib2 (подписанные файлы cookie, кто-нибудь?).

Смежные вопросы