lqq123 发表于 2021-5-28 17:28:18

【我是小白】爬取xml文件里的字段内容,报错ValueError: Unicode strings with enc...

本帖最后由 lqq123 于 2021-5-29 09:11 编辑

使用lxml爬取xml网页里的body字段,请大神指点

先上xml文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--Copyright w3school.com.cn -->
<note>
      <to>George</to>
      <from>John</from>
      <heading>Reminder</heading>
      <body>Don't forget the meeting!</body>
</note>


想获取xml文件里的body字段的文本,总是报错,我还没好好学,先请大神指点如何修改
import requests
from lxml import etree
def main():
    url = 'https://www.w3school.com.cn/example/xmle/note.xml'
    headers = {'user-agent': 'firefox'}
    r = requests.get(url, headers=headers)
    html = etree.XML(r.text)
    result = html.xpath('.//body')
    print(result.text)
if __name__ == '__main__':
    main()

wp231957 发表于 2021-5-28 17:49:30

你这个是解析网页的,解析文件你试试
xml_file = etree.parse(r'd:\test.xml')

suchocolate 发表于 2021-5-28 17:53:36

解析本地xml:from lxml import etree


html = etree.parse('test.xml', etree.XMLParser())
result = html.xpath('.//CustomerName')
print(result.text)



import xml.etree.ElementTree as ET


tree = ET.parse('test.xml')
root = tree.getroot()
result = root.findall('.//CustomerName')
print(result.text)

lqq123 发表于 2021-5-28 18:00:32

本帖最后由 lqq123 于 2021-5-28 18:03 编辑

suchocolate 发表于 2021-5-28 17:53
解析本地xml:


求教,如果是xml网页呢,需要怎么加url

wp231957 发表于 2021-5-28 18:04:20

lqq123 发表于 2021-5-28 18:00
求教,如果是xml网页呢,需要怎么加url

网页一般都是html

suchocolate 发表于 2021-5-28 18:08:33

lqq123 发表于 2021-5-28 18:00
求教,如果是xml网页呢,需要怎么加url

网页一般是HTML。
把你想爬的网页发上来,把想爬的内容说清楚。

lqq123 发表于 2021-5-28 18:12:37

suchocolate 发表于 2021-5-28 18:08
网页一般是HTML。
把你想爬的网页发上来,把想爬的内容说清楚。


我们内部有个接口查询的地址,查询出来是xml格式的网页,我需要从这上面抓取字段

suchocolate 发表于 2021-5-28 18:46:44

lqq123 发表于 2021-5-28 18:12
我们内部有个接口查询的地址,查询出来是xml格式的网页,我需要从这上面抓取字段


import requests
from lxml import etree


def main():
    url = 'xxx'
    headers = {'user-agent': 'firefox'}
    r = requests.get(url, headers=headers)
    html = etree.XML(r.text)
    result = html.xpath('.//CustomerName')
    print(result.text)


if __name__ == '__main__':
    main()

lqq123 发表于 2021-5-29 08:44:00

【我是小白】爬取xml文件里的字段内容,报错ValueError: Unicode strings with enc...

suchocolate 发表于 2021-5-28 18:46


还是会报错,已附上测试的url,抓取body字段内容,请大神指点

import requests
from lxml import etree
def main():
    url = 'https://www.w3school.com.cn/example/xmle/note.xml'
    headers = {'user-agent': 'firefox'}
    r = requests.get(url, headers=headers)
    html = etree.XML(r.text)
    result = html.xpath('.//body')
    print(result.text)
if __name__ == '__main__':
    main()

suchocolate 发表于 2021-5-29 09:16:18

lqq123 发表于 2021-5-29 08:44
还是会报错,已附上测试的url,抓取body字段内容,请大神指点

html = etree.XML(r.content)

lqq123 发表于 2021-5-29 09:46:14

suchocolate 发表于 2021-5-29 09:16


谢谢!{:9_227:}
页: [1]
查看完整版本: 【我是小白】爬取xml文件里的字段内容,报错ValueError: Unicode strings with enc...