我是新来的Python和美丽的汤也!我听说了BS。它被认为是解析和提取内容的好工具。所以我在这里…:
我想获取html中表的第一个td的内容 文件。例如,我有这张桌子
<table class="bp_ergebnis_tab_info">
<tr>
<td>
This is a sample text
</td>
<td>
This is the second sample text
</td>
</tr>
</table>
如何使用beautifulsoup获取文本“这是示例文本”? 我使用soup.findAll('table',attrs={'class':'bp_ergebnis_tab_info'})来获取 整个桌子。
谢谢。。。或者我应该试着用Perl获取所有的东西。。。我不太熟悉。另一个解决方案是PHP中的regex。
见目标[1]:http://www.schulministerium.nrw.de/BP/SchuleSuchen?action=799.601437941842&SchulAdresseMapDO=142323
注意:由于html有点无效-我想我们必须做一些清理。这可能会导致大量的PHP代码-因为我们想用PHP解决这个问题。Perl也是一个很好的解决方案。
非常感谢你的一些提示和想法 零
先找到桌子(就像你正在做的那样)。使用
find
而不是findall
返回列表中的第一项(而不是返回所有查找的列表-在这种情况下,我们必须添加额外的[0]
来获取列表的第一个元素):然后再次使用
find
查找第一个td
:然后使用
renderContents()
提取文本内容:。。。任务完成了(尽管您可能还想使用
strip()
删除前导和尾随空格:这应该给予:
如所愿。
我发现漂亮汤非常有效的工具,所以继续学习它:-)它能够解析带有无效标记的页面,因此它应该能够处理您引用的页面。如果要获取具有有效标记的有效重新格式化页源,则可能需要使用命令
BeautifulSoup(html).prettify()
命令。至于您的问题,第一个
soup.findAll(...)
命令的结果也是一个漂亮的Soup对象,您可以在其中进行第二次搜索,如下所示:使用“文本”在“td”之间获取文本
1)首先使用标记或ID读取表DOM
2)读取车身
3)从车身标签上读取所有tr
4)使用tr获取所有tds
相关问题 更多 >
编程相关推荐