import urllib.request
urllib.request.urlopen("http://hq.sinajs.cn/list=sh000001").read()
python 版本 3.4.
在 windows 下正常。 但是在阿里云服务器上抛出如下异常。。 在阿里云上换上百度的 url 也可以读出,敢问是怎么回事。。。
Traceback (most recent call last):
File "/usr/lib/python3.4/urllib/request.py", line 1232, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/usr/lib/python3.4/http/client.py", line 1065, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python3.4/http/client.py", line 1103, in _send_request
self.endheaders(body)
File "/usr/lib/python3.4/http/client.py", line 1061, in endheaders
self._send_output(message_body)
File "/usr/lib/python3.4/http/client.py", line 906, in _send_output
self.send(msg)
File "/usr/lib/python3.4/http/client.py", line 841, in send
self.connect()
File "/usr/lib/python3.4/http/client.py", line 819, in connect
self.timeout, self.source_address)
File "/usr/lib/python3.4/socket.py", line 509, in create_connection
raise err
File "/usr/lib/python3.4/socket.py", line 500, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "price_and_deal_data.py", line 33, in <module>
data_arr = urllib.request.urlopen(url).read().decode("gbk").split("=")[1].split(",")
File "/usr/lib/python3.4/urllib/request.py", line 153, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.4/urllib/request.py", line 455, in open
response = self._open(req, data)
File "/usr/lib/python3.4/urllib/request.py", line 473, in _open
'_open', req)
File "/usr/lib/python3.4/urllib/request.py", line 433, in _call_chain
result = func(*args)
File "/usr/lib/python3.4/urllib/request.py", line 1258, in http_open
return self.do_open( http.client.HTTPConnection, req)
File "/usr/lib/python3.4/urllib/request.py", line 1235, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 110] Connection timed out>
1
hging 2016-05-06 15:59:45 +08:00 1
我猜是爬太多 新浪封了...
|
2
nellace 2016-05-06 16:14:49 +08:00
目测编码问题,去掉 decode 试试
|
3
ldsink 2016-05-06 16:30:35 +08:00
Connection timed out 错误,这是连接超时。阿里云连你要下载的那个网址有问题。
PS :别用 urllib ,太麻烦了,用 requests ,这都快成准标准库了, HTTP for Humans 。 |
4
tongle 2016-05-06 16:32:47 +08:00 1
确定下你的服务器是否能访问 URL
|
5
star001007 2016-05-06 16:40:05 +08:00
抓我浪接口做甚
|
6
thomasjiao 2016-05-06 16:47:42 +08:00
加个 referer 和 ua 之类的试试吧,这种接口据内部人士说能抗 1000w 的并发
|
7
cxbig 2016-05-06 18:37:29 +08:00 1
在服务器上用 curl 或 wget 试试能不能读到页面,就可以知道是你程序问题还是服务器连接问题。
|
8
hqtc OP 感谢各位大大,我刚用 wget 试了一下,确实我的服务器不能访问这个 url 了。。我也就每天下午 5 点抓一下三大股指的点数数据,这样也会被封么?真是醉了。。。
有没有什么解决方案? |
9
xiahei 2016-05-07 14:36:33 +08:00
A sorrowful story !
|