微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何绕过元素树不匹配的标签错误?

如何解决如何绕过元素树不匹配的标签错误?

所以只是一点上下文,我目前正在使用 Element Tree 为最新的文章标题抓取几个加密新闻提要。下面的代码适用于大多数网站,但是在某些提要中,我收到以下错误,例如:

xml.etree.ElementTree.ParseError: mismatched tag: line 134,column 2

我猜这是由于该网站的 XML 代码中的错误造成的。我正在寻找一种方法来绕过这个错误并无论如何都要拉上最后一个标题,希望得到一些帮助:) 代码如下:

import xml.etree.ElementTree as ET
import requests

r = requests.get('https://cointelegraph.com/Feed')
root = ET.fromstring(r.text)

headline = root.find('channel/item/title').text


print(headline)

解决方法

您可能会看到 Cloudflare 验证码页面。尝试在 HTTP 标头中指定 User-Agent

import xml.etree.ElementTree as ET
import requests

headers = {
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0"
}
r = requests.get("https://cointelegraph.com/feed",headers=headers)
root = ET.fromstring(r.text)
headline = root.find("channel/item/title").text
print(headline)

打印:

Why is XRP seeing a monster rally when Ripple is worth just $3B on the secondary market?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。