【问题标题】:how to get an XML file from a website using python?如何使用 python 从网站获取 XML 文件?
【发布时间】:2019-04-25 10:06:24
【问题描述】:

使用 'bottle' 库,我必须基于此网站 http://dblp.uni-trier.de 创建自己的 API,因此我必须获取每个作者的数据。为此我使用以下链接格式http://dblp.uni-trier.de/pers/xx/'first letter of the last name'/'lastnamefirstname'.xml

您能帮我获取 XML 格式,以便能够解析它并获取我需要的信息。 谢谢

import bottle
import requests
import re

r = requests.get("https://dblp.uni-trier.de/")

  #the format of my request is 
  #http://localhost:8080/lastname firstname

@bottle.route('/info/<name>')
def info(name):

    first_letter = name[:1]

    #mettre au format Lastname:Firstname
    ...

    data = requests.get("http://dblp.uni-trier.de/pers/xx/" + first_letter     + "/" + family_name + ".xml")

    return data

bottle.run(host='localhost', port=8080)

【问题讨论】:

  • 这里有什么问题?从响应中获取 xml 或解析 xml?
  • 它从响应中获取 xml

标签: python regex xml api pycharm


【解决方案1】:
from xml.etree import ElementTree
import requests

url = 'some url'
response = requests.get(url)
xml_root = ElementTree.fromstring(response.content)

fromstring 从字符串常量解析 XML 部分。此函数可用于在 Python 代码中嵌入“XML 文字”。文本是一个 包含 XML 数据的字符串。 parser 是一个可选的解析器实例。如果 没有给出,使用标准的 XMLParser 解析器。返回一个元素 实例。

如何将 XML 从字符串加载到 ElementTree 中

from xml.etree import ElementTree
root = ElementTree.fromstring("<root><a>1</a></root>")
ElementTree.dump(root)
OUTPUT
<root><a>1</a></root>

【讨论】:

    【解决方案2】:

    requests.get 返回的对象不是原始数据。您需要使用 text 属性来获取内容

    Response Content 文档

    注意:

    • response.text 以 unicode 形式返回内容
    • response.content 以字节形式返回内容

    【讨论】:

    • 我使用了 print(data.text),它返回了我正在寻找的 xml 文件。现在我可以解析它了。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2016-04-06
    相关资源
    最近更新 更多