我正在为几个不同的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/

10-12 18:20