当前位置: 首页 > 知识库问答 >
问题:

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

欧阳俊捷
2023-03-14

因此,只需要一点上下文,我目前正在使用元素树刮取几个加密新闻提要,以获得最新的文章标题。下面的代码适用于大多数站点,但是在某些提要中,我会遇到以下错误:

xml.etree.ElementTree.ParseError:标记不匹配:第134行第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)

共有1个答案

王兴腾
2023-03-14

您可能会得到Cloudflare验证码页面。尝试在HTTP标头中指定用户代理:

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?
 类似资料:
  • 好的,所以我有一个正则表达式,我试图用它来匹配一些html文件中的特定模式。下面是preg_match语句: 明确地说,这是试图匹配一个id为{ { ALViewElement _ }的html元素。*}}但它也需要以结束标记结束,例如,如果$htmlElementType是“section ”,它将以“/section”结束 如果我的html看起来像这样,里面没有其他内容,那么它就如预期的那样工

  • 我正在尝试更新Dynamodb表用户中的一项。我尝试了许多不同的方法,但总是收到相同的错误消息: 提供的键元素与架构不匹配 项目的创建与查询一样有效,但更新不起作用。当我在DynamoDB上检查时,用户创建得很好: 下面是表格信息: 表名:用户 主分区键:电子邮件(字符串) 主排序键:注册(编号) 下面是代码(从lambda调用): 你知道我的代码中可能有什么错误吗?

  • 正如标题所说,我希望我的模式与字符串中的URL匹配,但BBCode标记之间的模式除外。 到目前为止,我已经创建了一个模式,该模式与标记之间的URL不匹配,但是没有足够的正则表达式技能使其适用于所有标记,比如更高级的once(等等)。所以要明确的是:和之间不应该匹配。 下面是我的工作示例,说明[img]标记之间的URL不匹配: http://regexr.com/v1?38mae(由于编码混乱,可能

  • 我正在尝试使用boto3从DynamoDB查询项目。 该表如下所示: DynamoDB表 我运行的代码是: 我错过了什么?

  • Eclipse Java EE IDE Apache TomcatV9.0 我通过New->Maven project创建了项目,并选择Maven原型为maven-archetype-webapp。 web.xml内容如下。 eclipse中的项目结构如下 谁能出点主意?