2024-06-09 02:40:38 发布
网友
我想得到所有的<a>标记,它们是<li>的子代:
<a>
<li>
<div> <li class="test"> <a>link1</a> <ul> <li> <a>link2</a> </li> </ul> </li> </div>
我知道如何找到具有如下特定类的元素:
soup.find("li", { "class" : "test" })
但我不知道如何找到所有的<a>是<li class=test>的孩子,而不是其他的孩子。
<li class=test>
我想选择:
<a>link1</a>
试试这个
li = soup.find('li', {'class': 'text'}) children = li.findChildren("a" , recursive=False) for child in children: print child
试试这个:
li = soup.find("li", { "class" : "test" }) children = li.find_all("a") # returns a list of all <a> children of li
其他提醒:
find方法只获取第一个出现的子元素。 find_all方法获取所有子代元素并存储在列表中。
文档中有一个超小的部分,说明如何查找/查找所有直接子项。
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-recursive-argument
在您的情况下,如您所希望的,link1是第一个直接子级:
# for only first direct child soup.find("li", { "class" : "test" }).find("a", recursive=False)
如果要所有直系子女:
# for all direct children soup.find("li", { "class" : "test" }).findAll("a", recursive=False)
试试这个
试试这个:
其他提醒:
find方法只获取第一个出现的子元素。 find_all方法获取所有子代元素并存储在列表中。
文档中有一个超小的部分,说明如何查找/查找所有直接子项。
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-recursive-argument
在您的情况下,如您所希望的,link1是第一个直接子级:
如果要所有直系子女:
相关问题 更多 >
编程相关推荐