我正在为几个不同的Web服务编写API包装器。
我有一个具有文章网址的方法,我想使用alchemyapi从中提取文本。
def extractText(self):
#All Extract Text Methods ---------------------------------------------------------//
#Extract page text from a web URL (ignoring navigation links, ads, etc.).
if self.alchemyapi == True:
self.full_text = self.alchemyObj.URLGetText(self.article_link)
转到python包装器中的以下代码
def URLGetText(self, url, textParams=None):
self.CheckURL(url)
if textParams == None:
textParams = AlchemyAPI_TextParams()
textParams.setUrl(url)
return self.GetRequest("URLGetText", "url", textParams)
def GetRequest(self, apiCall, apiPrefix, paramObject):
endpoint = 'http://' + self._hostPrefix + '.alchemyapi.com/calls/' + apiPrefix + '/' + apiCall
endpoint += '?apikey=' + self._apiKey + paramObject.getParameterString()
handle = urllib.urlopen(endpoint)
result = handle.read()
handle.close()
xpathQuery = '/results/status'
nodes = etree.fromstring(result).xpath(xpathQuery)
if nodes[0].text != "OK":
raise 'Error making API call.'
return result
但是我得到这个错误-
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "text_proc.py", line 97, in __init__
self.alchemyObj.loadAPIKey("api_key.txt");
File "text_proc.py", line 115, in extractText
if self.alchemyapi == True:
File "/Users/Diesel/Desktop/AlchemyAPI.py", line 502, in URLGetText
return self.GetRequest("URLGetText", "url", textParams)
File "/Users/Diesel/Desktop/AlchemyAPI.py", line 618, in GetRequest
raise 'Error making API call.'
我知道我以某种错误的格式将url字符串传递给api包装器,但是我不知道如何解决它。
最佳答案
提供的信息实际上对于诊断或解决问题不是很有帮助。您是否考虑过查看服务器的响应?您可以使用Fiddler检查完整的流量日志。
此外,Alchemy提供的SDK似乎不是-咳嗽,咳嗽-最高质量。由于它实际上仅包含大约600行源代码,因此,我考虑编写一个更短,更健壮的pythonic /任何SDK。
我可能现在也要补充一点,即使Alchemy网站上的现场演示也失败了,所以也许您的问题与此有关。我真的建议看看交通情况。
关于python - 我的python API包装器类中出现字符串错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4056073/