Python访问网页返回503错误

当我们使用python爬取网页时,经常会遇到503错误,这里简单分析了可能出现的情况,并给出解决方案

正文:

当请求网页返回:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Traceback (most recent call last):
  File "test.py", line 30, in <module>
    gethtml()
  File "test.py", line 13, in scanurl
    src = urllib2.urlopen(url).read()
  File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.6/urllib2.py", line 397, in open
    response = meth(req, response)
  File "/usr/lib/python2.6/urllib2.py", line 510, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.6/urllib2.py", line 435, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 503: Service Temporarily Unavailable

则原因有可能为一下两点:

  • 若浏览器能打开响应网页,则是你的请求头header有问题,修改header。
  • 若浏览器也打不开,则一般会有两种可能,第一种是对方服务器被动式拒绝服务,比如对方服务器瘫痪,网络问题等,一般很快会被修复。第二种主动式拒绝服务,有可能是因为你短时间内多次访问服务器(一般爬虫会遇到这个问题),这种情况就要看对方服务器的拉黑时间,像我,之前被拉黑过12小时的,所以你需要使用代理IP进行访问目标服务器。