requests get 请求解析xml

来源:互联网 发布:mysql 经纬度计算距离 编辑:程序博客网 时间:2024/06/08 16:25
__author__ = 'USER'
#encoding:UTF-8
'''
get请求返回的是xml文件
结对对xml的解析中存在中文的问题可以用requests中的content方法,以二进制的方式读取返回的值从而解决转码问题
ElementTree中
1.获取root结构
    ElementTree.fromstring(str) 解析字符串形式的xml
    ElementTree.parse('path') 解析本地xml文件
2. 通过节点名称获取节点对象
    root.getiterator("person")
    lst_node_child = lst_node[0].getchildren()[0] 获取节点的所有子对象
3.输出节点的tag text 和attrib(节点名节点值和属性)
    node.text
    node.tag
    node.attrib
'''
import requests
from xml.etree import ElementTree
url = 'http://fy.webxml.com.cn/webservices/EnglishChinese.asmx/Translator'
payload = {'WordKey':'my'}
req = requests.get(url,params=payload)
xml = req.content
#print type(xml)
print xml
root = ElementTree.fromstring(xml)
data_list = root.getiterator('WordKey')
Tr_list = root.getiterator('Translation')
#Orig_list = root.getiterator('Orig')
#trans_list = root.getiterator('Trans')
print '%s : %s'%(data_list[0].tag,data_list[0].text)
print '%s : %s'%(Tr_list[0].tag,Tr_list[0].text)
#for i in zip(Orig_list,trans_list):
#    print i[0].text,i[1].text

for Sentence in root.getiterator('Sentence'):
    for senchild in Sentence.getchildren():
        print senchild.text
0 0
原创粉丝点击