1

データベースに保存されているURLからコンテンツを取得するプログラムがあります。コンテンツを取得するためにbeautifulsoup、を使用しています。urllib2結果を出力すると、403エラー(どのように見えるか)が発生するとプログラムがクラッシュすることがわかります。では、403/404などのエラーでプログラムがクラッシュするのを防ぐにはどうすればよいですか?

関連する出力:

Traceback (most recent call last):
  File "web_content.py", line 29, in <module>
    grab_text(row) 
  File "web_content.py", line 21, in grab_text
    f = urllib2.urlopen(row)
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 400, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 513, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 438, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 372, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 521, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
4

1 に答える 1

4

try/exceptリクエストを、たとえばで囲むことができます

try:
    urllib2.openurl(url)
except urllib2.HTTPError, e:
    print e

いくつかの良い例と情報については、 http://www.voidspace.org.uk/python/articles/urllib2.shtml#handling-exceptionsを参照してください。

于 2012-04-12T05:30:51.300 に答える