我正在尝试在网站上循环搜索结果列表。搜索结果嵌套在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]
答案 0 :(得分:3)
我只想制作CSS selector:
for div in soup.select("div.result-item.standard"):
# ...
div.result-item.standard
会匹配同时包含div
和result-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。