首页 > 解决方案 > 网页抓取没有“类”或“ID”标识符的特定部分

问题描述

我在网络抓取时遇到问题

在 Python 中使用 BeautifulSuop4 时标记元素。通常,这些元素会被赋予一个类或 id 标识符,我可以在其中使用:

.find_all(<p>, class_ = 'class-name')

找到元素但是我试图隔离的元素在一个连续的列表中

所有这些标签都没有其元素的标识符。

有没有办法选择每个

在具有标识符的标签之后的标签?或者也许是一种隔离特定的方法

我想要的标签没有任何共享的类/ID?

标签: pythonweb-scrapingbeautifulsoup

解决方案


您可以使用 find_next_sibling 来查找元素的无类下一个兄弟。

考虑这个示例 HTML。第一个 div 有“blah”类。第二个 div 没有类,但在第一个 div 旁边。

html='<div><div class="blah">1</div><div>no class</div></div>'
import bs4
soup = bs4.BeautifulSoup(html,'html.parser')
soup.find('div',{'class':"blah"}).find_next_sibling()

#outputs second div without a class
<div>no class</div>

有关更多详细信息,请参阅


推荐阅读