我使用的是worldcat python包,它使用worldcat open REST API,并使用搜索查询和其他parameters.Basically来获取图书数据,它做到了这一点-
self.response = urllib2.urlopen(_query_url).read()其中_query_url是由基本url和一些参数组成的url,例如搜索字符串、每页记录数等。通过使用timeit包,我发现每次调用API都需要18-20秒。
然而,如果我从浏览器发出这个请求,只需要3-4个seconds.What就会导致python lib.Is中的延迟,这正常吗?如何在python中更快地发出API请求?
发布于 2015-07-26 03:48:29
我的幸运猜测是使用自定义头部-它们可能有某种保护或其他什么。
尝试:
headers = {
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0",
"Accept-Encoding": "gzip, deflate",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Connection": "keep-alive",
"Content-Type": "text/html;charset=utf-8"
}
r = urllib2.Request(_query_url, None, headers)
self.response = urllib2.urlopen(r)无论如何,我喜欢使用python 'requets',为什么不试一试呢?简单而稳定。除了一些SSL密钥问题,但那是另一回事了。
https://stackoverflow.com/questions/31630334
复制相似问题