如何让ul
内的div
具有班级名称制作者。我尝试了这个,但它发出错误'list' object has no attribute 'find_all'
这就是我的尝试:
div = base_category_soup.select("div.makers")
print div.find_all("ul")
我该如何解决这个问题?
答案 0 :(得分:1)
首先,发现find_all不能与select的结果一起使用
您可以检查结果的类型以了解它
并且,在这种情况下,我将使用find或find_all来查找目标
试试吧
target = base_category_soup.find('div',class_='markers').find('ul')
它必须是"在第一个div中的第一个ul,它的类是标记"
答案 1 :(得分:0)
基本上,错误会告诉您所有需要知道的事情。由于div是一个列表,你需要取消引用它,例如:
div[0].find_all("ul")
如果第一个div元素是你想要的元素,或者只有一个元素。
答案 2 :(得分:0)
您可以使用nth-of-type
CSS伪类(由BeautifulSoup支持):
ul = base_category_soup.select('div.makers ul:nth-of-type(1)')
或者,一个简单的Python项getter:
ul = base_category_soup.select('div.makers ul')[0]
请注意,这两项内容都会让您第一个ul
来自实际包含div.makers
元素的第一个ul
,而div[0].find_all('ul')
如果第一个div
不包含任何ul
s。