网页抓取特定部分没有“class”或“id”标识符

时间:2021-02-27 14:13:39

标签: python web-scraping beautifulsoup

我在 Python 中使用 BeautifulSuop4 时遇到了网络抓取

标签元素的问题。通常,元素会被赋予一个类或 id 标识符,我可以在其中使用:

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

找到元素,但是我试图隔离的元素位于连续的

标签列表中,所有这些标签都没有其元素的标识符。

有没有办法在具有标识符的标签之后选择每个

标签?或者也许是一种隔离我想要的特定

标签而没有任何共享类/ID 的方法?

1 个答案:

答案 0 :(得分:0)

您可以使用 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>

有关详细信息,请参阅 thisthis