这就是我试图获取所有链接的方式:
soup.find("div", attrs={"class": "vl-article-title"}).find("h3").find("span").find("a")
这只找到第一个,但正如我所说,我需要所有这些。
为什么这不起作用:
soup.findAll("div", attrs={"class": "vl-article-title"}).find("h3").find("span").find("a")
我收到错误:
'ResultSet' object has no attribute 'find'
答案 0 :(得分:5)
for i in soup.findAll(...):
i.find("h3").find("span").find("a")
答案 1 :(得分:2)
findAll
返回ResultSet
,其中没有方法find
。您可以将ResultSet
视为一种列表,因此您可以像pacholik建议的那样对其进行迭代。
答案 2 :(得分:1)
在这种情况下,您不会使用findAll获得任何结果,因为
findAll()
返回bs4对象的列表。您需要做的是遍历每个对象并运行
find()
他们。你可以做类似的事情:
list_of_divs = soup.findAll("div", attrs = {"class" : "vl-article-title"})
#now iterate over every div
for i in list_of_divs:
link = i.find("h3").find("span").find("a")
print link.getText() + " : " + link["href"]