gpt4 book ai didi

python - 解析奇怪的网页 - 多个html标签

转载 作者:行者123 更新时间:2023-11-27 22:34:53 25 4
gpt4 key购买 nike

我正在尝试解析一个非常奇怪的页面。这是一个简化版本:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml">
<form id="x" method="post" action="x">
<input type="hidden" name="v1" value="v" />
<html xmlns="http://www.w3.org/1999/xhtml">
<input type="hidden" name="v2" value="v" />
</html>
</form>
</html>

是的,在表单中有一个 html 标签。

这是有效的 (X)HTML 吗?我知道这是(至少部分)使用 Java Server Faces 完成的。

关于实际问题:

>>> BeautifulSoup(html).find("form")
<form id="x" method="post" action="x">
<input type="hidden" name="v1" value="v" />
</form>

BeautifulSoup 根本不喜欢这样,只是假装它不存在。

有人遇到过类似的事情吗?我想我可以解析原始 XML,但如果可能的话,我想使用 BeautifulSoup。

最佳答案

我已经看到在不检查输出的情况下组合多个服务器源时会发生这种情况。我不认为存在 html 标记在文档中间有效的情况(除了在 iframe 标记中)。您发布的代码段肯定无效 (validator.w3.org)

如果流氓标 checkout 现在可预测的位置,字符串替换是一种快速解决方案,以便您随后可以正确解析它。

I guess I could parse raw XML

假设文档符合其格式良好的 XHTML 文档类型(这意味着它是有效的 XML,即使不是有效的 XHTML),您可以:

  • 将文档解析为 XML
  • 将标记修改为有效的内容(例如,展开内部元素,或将其更改为 div)
  • 使用 BeautifulSoup 解析为 HTML。

关于python - 解析奇怪的网页 - 多个html标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14659255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com