Python 中最宽容的 HTML 解析器是什么?

2024-05-11

我有一些随机的 HTML,我使用 BeautifulSoup 来解析它,但在大多数情况下 (>70%) 它会令人窒息。我尝试使用Beautiful soup 3.0.8和3.2.0(3.1.0以上有一些问题),但结果几乎相同。

我可以从我的脑海中回忆起 Python 中可用的几个 HTML 解析器选项:

  • 美丽汤
  • lxml
  • pyquery

我打算测试所有这些,但我想知道您的测试中哪一个最宽容,甚至可以尝试解析错误的 HTML。


他们都是。我还没有遇到过任何 lxml.html 无法解析的 html 页面。如果您尝试解析的页面上存在 lxml barfs,您始终可以使用一些正则表达式对它们进行预处理,以使 lxml 满意。

lxml 本身相当严格,但是lxml.html是一个不同的解析器,可以处理非常损坏的 html。对于极其糟糕的 html,lxml 还附带lxml.html.soupparser它与 BeautifulSoup 库交互。

这里描述了使用 lxml.html 解析损坏的 html 的一些方法:http://lxml.de/elementsoup.html http://lxml.de/elementsoup.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中最宽容的 HTML 解析器是什么? 的相关文章

随机推荐

  • 我如何公开我的IP,外部可以访问我的本地主机

    我只是想让我的IP公开 这样就可以从任何地方访问它 我正在使用ubuntu 18 04 已经安装了apache2和PHP 索引文件位于 var www html example com public html index php 在本地主机
  • 从本地存储保存和检索日期

    这似乎是一个愚蠢的问题 但我在理解 Typescript 方面遇到了相当困难 我有以下代码 var date new Date window localStorage setItem date date 如您所见 我正在生成今天的日期并通过
  • 重新采样 H264 视频以降低帧速率,同时保持高图像质量

    以下是感兴趣的视频的 mplayer 输出 br carina tmp mplayer foo mov mplayer Symbol ff codec bmp tags has different size in shared object
  • 数据表 JSF 中的延迟加载

    在我负责的许多项目中 没有什么比数据表中的延迟分页更好的了 JSF 是否有某种魔力 或者我说得对吗 它确实是一个很大的性能问题 如果你看过一些教程 几乎没有人关心惰性分页 假设您在支持 bean 上有 List 并且数据库中有 2000 行
  • 带有泛型类声明的命名空间约束

    我想知道是否 如果可以的话如何 可以将命名空间定义为泛型类声明中的约束参数 我所拥有的是这样的 namespaceMyProject Models Entities namespaceMyProject Tests BaseTest 现在我
  • Watir 脚本偶尔返回 Net::ReadTimeout 错误

    我有一个 Watir 脚本 偶尔会意外地返回此错误 Net ReadTimeout 我搜索了这个错误并发现这个问题 https stackoverflow com questions 47452276 watir get sometimes
  • 非 Activity 类中的 findViewById

    对此我仍然相对较新 在我在活动类 MainActivity 中使用的非活动类 MyLocation 中查找视图时遇到问题 我正在使用 MyLocation 来获取经度和纬度 我想在使用 GPS 或网络时突出显示文本视图 为此 我需要在非活动
  • Pytesseract,尝试检测屏幕上的文本

    我将 MSS 与 pytesseract 结合使用 尝试在屏幕上读取以确定正在监视的区域中的字符串 我的代码如下 import Image import pytesseract import cv2 import os import mss
  • C# 泛型重载 - 编译器无法确定正确的调用

    我不明白为什么编译器无法解析此处使用的正确重载 代码如下 只有一个版本的 Add 是合适的 BigFoo 是一个 IFoo 并且不实现 IEnumerable 其中 T 是一个 IFoo 但它坚持报告含糊之处 有任何想法吗 我尝试添加第二个
  • Delphi DataSnap REST 服务器从 TStream 返回 JSON 数组,而不是二进制

    我有一个与 Android 客户端通信的 REST 服务器 我将它从 XE3 ish 升级到 Berlin 其中一个服务器方法返回一个包含 jpeg 的 TStream 并且工作得很好 很高兴将图像作为二进制图像返回 升级到 Berlin
  • 如何向 WordPress.com 上托管的 WordPress 博客添加语法突出显示?

    我希望为我的 WordPress 博客提供一个好的语法荧光笔 我有哪些选择 我经常看到它具有颜色鲜艳的语法突出显示和复制到剪贴板的选项 有谁知道这是什么工具吗 在 wordpress com 上 您无法安装插件 因此您必须使用 Wordpr
  • 如何在Python中完美地将单元素列表转换为元组? [复制]

    这个问题在这里已经有答案了 所以我正在尝试这样做 tuple 1 我期望的输出是 1 但是 我得到了这个 1 但如果我这样做 tuple 1 2 它工作完美 像这样 1 2 这太奇怪了 我不知道为什么元组函数会导致这个结果 请帮我解决它 这
  • 从 DoubleLinkedList 中删除重复项

    我正在尝试删除 C 中的重复项 我已经设法使用对象默认构造函数将对象设置为 null 但我无法将其从列表中完全删除 此代码还删除了两个对象 而不仅仅是一个 这是另一个问题的转帖 我的代码和部分帖子已更改 如何按全名从双向链表中删除重复项 h
  • MongoDB 查询返回空数组

    有一个基本的 Express 应用程序连接到几乎 0 5 GB 的 MongoDB 数据库 当我运行时 router get function req res next medical data find State CT function
  • 从 google Drive 自行下载 xlsx 文件

    所以 我正在尝试制作一个小脚本 它将使用谷歌驱动器API下载一个Excel文件 通过遵循谷歌API教程 我遇到了两个错误 无法读取未定义的 on 属性 和 请求的转换是不支持 这是代码 const fs require fs const r
  • 如何手动推断表达式的类型

    给定 Haskell 函数 head filter fst 现在的问题是如何手动 手动 找到类型 如果我让 Haskell 告诉我我得到的类型 head filter fst Bool b gt Bool b 但我想了解仅使用所用函数的签名
  • 无法在 SBT 中运行 Apache Spark 相关单元测试 - NoClassDefFoundError

    我有一个简单的单元测试 使用SparkContext 我可以在 IntelliJ Idea 中运行单元测试 没有任何问题 但是 当尝试从 SBT shell 运行相同的测试时 我收到以下错误 java lang NoClassDefFoun
  • 跟踪 C++ 中递归函数被调用的次数

    我正在尝试编写一个程序 该程序具有一个参数是字符串向量的函数 我想在该函数上使用递归 但每次调用该函数时 我想更改参数 例如 fun stringArray i 其中 i 是调用该函数的次数 因此 以更简单的方式 如下所示 但我需要跟踪函数
  • 用于裁剪和转置视频的 FFMPEG 命令放大后质量较差

    我正在尝试将尺寸通常为 960x720 的 mp4 视频转换为方形 480 480 视频 但它通常看起来被压扁 命令是 y i s vf crop 480 480 transpose d threads 5 metadata s v rot
  • Python 中最宽容的 HTML 解析器是什么?

    我有一些随机的 HTML 我使用 BeautifulSoup 来解析它 但在大多数情况下 gt 70 它会令人窒息 我尝试使用Beautiful soup 3 0 8和3 2 0 3 1 0以上有一些问题 但结果几乎相同 我可以从我的脑海中