如何在BeautifulSoup中使用re.compile与类

0 投票
1 回答
1583 浏览
提问于 2025-04-28 05:36

我正在尝试抓取一个页面,这个页面上有不同的CSS类,具体如下:

class="mod result idx0 people"
class="mod result idx1 people"
class="mod result idx2 people"
class="mod result idx3 people"
class="mod result idx4 people"

我使用的是 bs4html5lib,搭配 Python2.7

现在,当我对上面第一个元素进行操作时,结果是好的。

soup.find(class_="mod result idx0 people")

但是,我想对所有的类都这样做。

所以我尝试了所有的类,但仍然得到一个空列表 []。我哪里做错了呢?

soup.find_all(class_="mod result")
soup.find_all(class_=re.compile("mod result"))
soup.find_all("li",{"class":re.compile("mod result")})
soup.find_all("li",attrs={"class":re.compile("mod result")})
soup.find_all({"class":re.compile("mod result")})

这些都不行 :-(

暂无标签

1 个回答

1

根据Beautiful Soup的文档 - 按CSS类搜索,如果你想查找同时符合两个或多个CSS类的标签,你应该使用CSS选择器。

soup.select('.mod.result')

撰写回答