BeautifulSoup 找到具有多个 类 的所有标签

BeautifulSoup findAll tags with mutliple classes

我正在尝试循环访问网站上的搜索结果列表。搜索结果嵌套在 div 标签下,有两个不同的 类、"result-item standard" 和 "result-item standard basic ad"。我希望按出现顺序找到搜索结果。如何在我的 findAll 中包含多个 类?或者还有其他方法吗?

我当前的代码如下:

for div in soup.findAll("div", {"class": ["result-item standard", "result-item standard  basic ad"]}):
    #item_title = " ".join(div.h2.a.text.split())
    item = div.h2.a.text.split()
    item_year = item[0]
    item_make = item[1]

我会做一个 CSS selector:

for div in soup.select("div.result-item.standard"):
    # ...

div.result-item.standard 将匹配同时具有 result-itemstandard 类.

div 元素

可能会慢一点,但使用 class_ 选择器:

divs = soup.find_all("div", class_="result-item standard") + soup.find_all("div", class_="result-item standard  basic ad")     
for div in divs:
    item = div.h2.a.text.split()
    item_year = item[0]
    item_make = item[1]

您使用的语法是 BS3,此答案中的语法是 BS4。