Python 如何使用BeautifulSoup从多个兄弟姐妹处收集信息?
以下是我正在使用的html:Python 如何使用BeautifulSoup从多个兄弟姐妹处收集信息?,python,beautifulsoup,Python,Beautifulsoup,以下是我正在使用的html: <a 'data' = 'ubr_app'>List</a> <ul> <li> 'a' </li> <li> 'b' </li> <li> 'c' </li> <ul&g
<a 'data' = 'ubr_app'>List</a>
<ul>
<li>
'a'
</li>
<li>
'b'
</li>
<li>
'c'
</li>
<ul>
<li>
1
</li>
<li>
2
</li>
<li>
3
</li>
列表
-
“a”
-
“b”
-
“c”
-
1.
-
2.
-
3.
我想将这些列表中的所有信息存储在单独的数组中。我在python中所做的工作如下:
def getItems(soup):
item1_list = []
item2_list = []
appliance = soup.find('a', {'data-lid' : 'ubr_app'})
appliance_ul = appliance.parent.find_next_sibling() # go to 1st <ul> sibling
for item in appliance_ul.find_all('li'):
item1_list.append(item.text)
appliance_ul = appliance_ul.find_next_sibling() # go to 2nd <ul> sibling
for item in appliance_ul.find_all('li'):
item2_list.append(item.text)
return item1_list, item2_list
def getItems(汤):
项目1_列表=[]
项目2_列表=[]
appliance=soup.find('a',{'data-lid':'ubr_app'})
appliance_ul=appliance.parent.find_next_sibling()#转到第一个同级
对于设备中的项目,查找所有(“li”):
item1_list.append(item.text)
appliance_ul=appliance_ul.查找下一个兄弟姐妹()#转到第二个兄弟姐妹
对于设备中的项目,查找所有(“li”):
item2_list.append(item.text)
返回项目1\u列表、项目2\u列表
这给了我['a','b','c',和[1,2,3]。
这就是我想要做的,但它是非常静态的,看起来像丑陋的代码。是否有一种方法可以搜索所有现有的“ul”同级,以便我可以在每个嵌套列表中保存信息?而不是使用
。查找下一个同级()
,使用并为其提供一个筛选器:
def getItems(soup):
items = []
appliance = soup.select('a[data-lid="ubr_app"]')[0]
for appliance_ul in appliance.parent.find_next_siblings('ul'):
items.append([i.text for i in appliance_ul.find_all('li')])
return items
.find\u next\u同胞('ul')
调用返回所有
同胞标记的列表