LXML 不解析损坏 HTML:XPath 发现 XMLSyntaxError 错误
LXML does not parse broken HTML : XMLSyntaxError error finding by XPath
我正在尝试从登录页面提取 csrf 令牌。
我正在使用 lxml 库作为解析器。
s = requests.Session()
login_html = etree.fromstring(
s.get('https://www.uwkotinleuven.be/fr/login').text)
find = etree.XPath('//*[@id="login-form-2"]/input[3]')
print(find(login_html).value )
这是错误:
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: link line 19 and head, line 46, column 24
我不确定错误是来自 XPath 查找器,还是发送的任何损坏的 HTML。
我应该更改解析还是提供参数?有没有一种传统的方法来解析损坏的 HTML ?
它看起来像一个损坏的 html 问题。看看这是否适合你:
import requests
import lxml.etree as etree
from io import StringIO
s = requests.Session()
dat = s.get('https://www.uwkotinleuven.be/fr/login')
parser = etree.HTMLParser()
tree = etree.parse(StringIO(dat.text), parser)
find = tree.xpath('//*[@id="login-form-2"]/input[3]')
print(find[0].attrib.values()[2])
输出:
3pKL_AsLLBE07T6S-VY8eXJ4ooK_QH5kMgajPEwKSso
我正在尝试从登录页面提取 csrf 令牌。 我正在使用 lxml 库作为解析器。
s = requests.Session()
login_html = etree.fromstring(
s.get('https://www.uwkotinleuven.be/fr/login').text)
find = etree.XPath('//*[@id="login-form-2"]/input[3]')
print(find(login_html).value )
这是错误:
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: link line 19 and head, line 46, column 24
我不确定错误是来自 XPath 查找器,还是发送的任何损坏的 HTML。
我应该更改解析还是提供参数?有没有一种传统的方法来解析损坏的 HTML ?
它看起来像一个损坏的 html 问题。看看这是否适合你:
import requests
import lxml.etree as etree
from io import StringIO
s = requests.Session()
dat = s.get('https://www.uwkotinleuven.be/fr/login')
parser = etree.HTMLParser()
tree = etree.parse(StringIO(dat.text), parser)
find = tree.xpath('//*[@id="login-form-2"]/input[3]')
print(find[0].attrib.values()[2])
输出:
3pKL_AsLLBE07T6S-VY8eXJ4ooK_QH5kMgajPEwKSso