我已经尝试了几个小时来获取imgur API的响应。我在终端中获得了XML,但我不知道如何抓取它并解析它。这是我的代码。
c = pycurl.Curl()
values = [
("key", "Super Secret API Number"),
("image", (c.FORM_FILE, "pic.jpg"))]
c.setopt(c.URL, "http://api.imgur.com/2/upload.xml")
c.setopt(c.HTTPPOST, values)
c.perform()
c.close()
我是python的大菜鸟,这是我的第一次。 Python处女。我读过你可以用ElementTree解析xml,但我找不到任何很酷的文档。
希望你能帮助我。感谢。答案 0 :(得分:3)
将imgur-api
的响应存储到文件中。然后需要使用xml解析器来解析从Imgur-API
获取的xml响应/文件。
有很多选项,例如lxml或BeautifulSoup。
以下是如何将lxml
与XPath expressions
一起使用的示例。
from lxml import etree
xml = """<foo>baz!</foo>"""
>>> xml = """<foo>baz!</foo>"""
>>> xp = etree.fromstring(xml)
>>> values = xp.xpath("//foo/text()")
>>> values
['baz!']
如果需要解析xml文件:
# parse from file
et = etree.parse(source_xml)
value = et.xpath("your xpath xpr here")
如果您需要直接从网址解析
# parse from URL
etree.parse("http://example.com/somefile.xml")
对于,XPath使用firefox的firebug
扩展名或安装firepath
答案 1 :(得分:1)
当我开始使用包含的ElementTree模块时,我发现documentation缺少很好的例子(目前只有3个,其中只有一个显示任何直接实用的东西)。
我在这里回答了几个与lxml / ElementTree有关的问题,我经常看到人们试图编写这些奇怪的列表推导来处理XPath在一行中更清楚地处理的问题:
如果您有更具体的问题,请发布一些源XML和所需效果。
我希望这有帮助,