【问题标题】:python beautifulsoup adding extra end tagspython beautifulsoup添加额外的结束标签
【发布时间】:2010-08-17 17:07:24
【问题描述】:

我正在使用 Beautifulsoup 解析网站

  request = urllib2.Request(url)
  response = urllib2.urlopen(request)
  soup = BeautifulSoup.BeautifulSoup(response)

我正在使用它来遍历一个表。我遇到的问题是 BS 正在将表格的额外结束标记添加到不存在的 html 中,我使用以下方法进行了验证:print soup.prettify()。因此,其中一个 td 标记被排除在表之外,我无法选择它。

【问题讨论】:

  • 你能发布无效的html代码的基本结构吗?
  • 也希望得到这个答案。就我而言,似乎 BS 在页面的源代码中添加了 not 的标签

标签: python html-parsing beautifulsoup


【解决方案1】:

如何直接搜索每个标签而不是尝试遍历表?

   for td in soup.find("td"):
        ...

当它不在代码中时,自动找到嵌套在表中的 tbody 标记并不罕见。您可以为它编写代码,也可以直接跳转到 tr 或 td 标签。

【讨论】:

  • 这是个好主意,我试过了。当我运行上面的代码时,它返回整个表而不是每个单独的 td。我认为 BS 在这个页面上打破了可怕的 html ......虽然机器人确定该怎么做
  • 两件事,检查你使用的版本。如果您使用 3.1 切换回 3.0 (crummy.com/software/BeautifulSoup/3.1-problems.html),请尝试使用 lxml,恕我直言,它是比 Soup 更好的通用解析器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-19
  • 2017-09-03
  • 2018-08-27
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
  • 2022-08-13
相关资源
最近更新 更多