首页 > 解决方案 > 网页抓取时过滤掉标签的最佳方法?

问题描述

我正在使用 beautifulsoup 进行一些网页抓取,并想知道从我抓取的任何表条目中过滤掉 img 标签的最佳方法,因此在此代码片段中过滤 td.text 属性的结果将只返回有用的文本

<tr>
  <td>
    usefultext
    <img src='imgsrc' alt='*'>
  </td>
</tr>

标签: pythonhtmlbeautifulsoup

解决方案


您可以创建汤,useful_text一旦创建了汤,文档将解释,您可以通过选择上下树tags,在这种情况下,我选择了td标签,如果它有多个字符串,我将使用该get_text()功能。

from bs4 import BeautifulSoup, SoupStrainer

html = '''<tr>
  <td>
    usefultext
    <img src='imgsrc' alt='*'>
  </td>
</tr>'''

useful_text = BeautifulSoup(html)
useful_text.td.get_text()
[out]:

'\n    usefultext\n    \n'

如果您有多个td标签,那么您将需要使用该next_siblings功能。

我强烈建议阅读文档并玩弄。


推荐阅读