编程爱好者007 2021-11-29 17:50 采纳率: 100%
浏览 267
已结题

xpath解析网页文件,每行结尾都出现一个奇怪的编码“&#13”

问题遇到的现象和发生背景

爬虫课学到XPATH 解析。然后练习解析html 文件

问题相关代码,请勿粘贴截图
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
    <h1>我的第一个标题</h1>
    <p>我的第一个段落。</p>
    <div>
        <ul>
            <li class="item-0"><a href="link1.html">first 中午</a></li>
            <li class="item-i active"><a href="link2.html">second item</a></li>
            <li class="item-i active red"><a href="link3.html">third item</a></li>
            <li class="item-i active blue" name = "li"><a href="link4.html">fourth item</a></li>
            <li class="item-0"><a href="link5.html">fifth item</a>
        </ul>
    </div>
</body>
</html>

from lxml import etree

h2=etree.parse("1.html",etree.HTMLParser(encoding='utf-8'))
print(h2)
str=etree.tostring(h2,encoding="utf-8")
print(str.decode('utf-8'))

运行结果及报错内容

img

运行结果就是解析出来的东西每个后面都会加&#13; teacher看了半天说可能是换行符编码,他也解决不了但没啥影响

我的解答思路和尝试过的方法

最开始用的是自己写的一个简单HTML ,后来拿了一个简单网页的源代码复制过来做HTML , 最后去runoob教程拿个简单框架,自己写了几个标签的HTML。 无一例外的会出现这个奇怪的编码。

我想要达到的结果

为什么就我会出来这个编码……虽然没报错 也不影响使用。 但还是觉得哪里不对。我想知道到底哪里不对?

  • 写回答

2条回答 默认 最新

  • llc的足迹 2021-11-30 09:20
    关注

    method默认为xml,设置为html就行了

    etree.tostring(h2, encoding="utf-8", method='html')
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月8日
  • 已采纳回答 11月30日
  • 创建了问题 11月29日