我试图从http://m.finnkino.fi/events/now_showing获取一些数据,但此刻我失败了,因为我甚至无法使用python加载页面源代码。 目前我使用下面的代码:urllib2加载手机网站的问题
req = urllib2.urlopen(URL,None,2.5)
page = req.read()
print page
这里是超时错误回溯:
Traceback (most recent call last):
File "user/src/finnkinoParser.py", line 26, in <module>
main()
File "user/src/finnkinoParser.py", line 13, in main
getNowPlayingMovies()
File "user/src/finnkinoParser.py", line 17, in getNowPlayingMovies
req = urllib2.urlopen(baseURL,None,2.5)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 124, in urlopen
return _opener.open(url, data, timeout)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 383, in open
response = self._open(req, data)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 401, in _open
'_open', req)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 361, in _call_chain
result = func(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 1130, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 1105, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error timed out>
如果我浏览到我的浏览器的URL,它工作正常。那么有人可以告诉我什么使得这个网站非常不同,所以urllib2无法加载页面。我想这与该网站面向移动用户有关。与“常规”网站urllib2工作正常。有没有其他类型的网站基本urlopen(URL)不起作用?
感谢您的帮助
您是否认为这可能有助于我们了解运行该代码时会发生什么?它与你期望的有什么不同?你会得到什么错误? – 2011-05-19 15:52:11
我也得到一个超时。但WGET的作品。所以这不是用户代理的问题,只是尝试使用自定义urlopenener,它也不起作用。 – 2011-05-19 15:56:11
恭喜,这是你发现的一个非常奇怪的问题。在python 2.7中,它会在调用'self._sock.recv'时永远挂在socket.py 447行上,该文件内置于python中,并且没有任何关联的python源代码。这比python和urllib2更深入。 – 2011-05-19 16:26:27