我想我正在尝试用 BeautifulSoup (BS4) 编写我的第一个解析器并遇到一个概念问题。我在 Python 方面做得不多——我在 PHP 方面做得更好。
我可以让 BeautifulSoup 找到我想要的表格,但是当我尝试进入表格并找到所有行时,我得到了一些变化:
AttributeError: 'ResultSet' object has no attribute 'attr'
我尝试浏览示例代码如何使用 urllib2 从 Python 中打开的 url 中提取特定数据?并得到或多或少相同的错误(注意:如果你想尝试它,你需要一个有效的 URL。)
我正在阅读的一些内容表明问题在于 ResultSet 是一个列表。我怎么会知道?如果我这样做print type(table)
只是告诉我<class 'bs4.element.ResultSet'>
我可以在表格中找到文本:
for row in table:
text = ''.join(row.findAll(text=True))
print text
但如果我尝试使用以下命令搜索 HTML:
for row in table:
text = ''.join(row.find_all('tr'))
print text
它抱怨expected string, Tag found
那么我如何将这个字符串(这是一个充满 HTML 的字符串)重新整理成一个我可以解析的 beautifulsoup 对象?