lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8

在使用xpath,遇到了报错,记录下。

 

 (python中代码是没有问题)

from lxml import etree
import requests
from constants import headers


def run():
    # url = "http://www.gushiju.net/shici/guanyu/%E4%B8%89%E5%9B%BD%E6%BC%94%E4%B9%89"
    # page_text = requests.get(url=url, headers=headers).text
    tree = etree.parse("2.html")
    res = tree.xpath('/html/head/title')
    print(res)


if __name__ == '__main__':
    run()

 发现,其实是html文档有问题。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>hello world</h1>
</body>
</html>

正确的解决方式是:

 

<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

// 在每一个标签末尾加上“/”号

 

 

 

 

 执行成功了!

 

posted on 2022-12-10 17:38  一先生94  阅读(314)  评论(0编辑  收藏  举报

导航