【问题标题】:How to handle lxml errors without importing entire module?如何在不导入整个模块的情况下处理 lxml 错误?
【发布时间】:2017-05-20 23:52:36
【问题描述】:

我有一个作为网络蜘蛛运行的 Python (3.6) 脚本。它抓取页面的内容,提取链接并抓取它们。它使用lxml.html 处理链接,使用导入

from lxml import html

我正在尝试为运行时可能遇到的每个错误创建自定义响应。我目前正在处理 Unicode、SSL、重定向、连接和 ContentDecode 错误。我经常遇到lxml.etree.XMLSyntaxErrorlxml.etree.XMLParseError。我尝试通过 except-blocks 传递它们,但是当它遇到NameError: name 'lxml' is not defined 时它总是停止,因为我只导入lxml.html 而不是整个模块。

有什么方法可以在不导入整个模块的情况下捕获错误?

【问题讨论】:

    标签: python error-handling lxml lxml.html


    【解决方案1】:

    您可以通过etree.(Error) 访问lxml 错误,即。 etree.XMLSyntaxErroretree.ParseError

    from lxml import etree
    

    lxml 还有a nice page 详细说明etree 模块中的每个对象。

    【讨论】:

      猜你喜欢
      • 2014-11-14
      • 2017-02-12
      • 2021-10-04
      • 1970-01-01
      • 2018-11-10
      相关资源
      最近更新 更多