BeautifulSoup查找所有带有mutliple类的标签

时间:2015-11-17 07:21:03

标签: python beautifulsoup findall

我正在尝试在网站上循环搜索结果列表。搜索结果嵌套在div标签下,有两个不同的类,“结果项标准”和“结果项标准基本广告”。我希望按照出现的顺序找到搜索结果。如何在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]

2 个答案:

答案 0 :(得分:3)

我只想制作CSS selector

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

div.result-item.standard会匹配同时包含divresult-item类的standard元素。

答案 1 :(得分:0)

可能会慢一些,但使用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。