for row in soup.find_all('tr'):
cells = row.find_all('td')
if len(cells)==10: #Only extract table body not heading
A.append(cells[0].find(text=True))
B.append(cells[1].find(text=True))
C.append(cells[2].find('div').get('title'))
D.append(cells[3].find('a', href=True).get_text())
E.append(cells[4].find('a', href=True).get_text())
if cells[5].find(text=True) is None or cells[5].find('a', href=True) is None:
F.append(cells[5].find(text=True))
else:
Output = '-'.join([item.get_text() for item in cells[5].find_all('a')])
F.append(Output)
if cells[6].find(text=True) is None or cells[6].find('a', href=True) is None:
G.append(cells[6].find(text=True))
else:
G.append(cells[6].find('a', href=True).get_text())
if cells[7].find(text=True) is None or cells[7].find('a', href=True) is None:
H.append(cells[7].find(text=True))
else:
H.append(cells[7].find('a', href=True).get_text())
I.append(cells[8].find('span').get_text())
J.append(cells[9].find(Title=True))
问题在于,在单元5、6和7处,所需的输出有时在ahref标签内,有时在td标签内。该代码有效,但List F f.e.看起来像这样:
0
T-001
1
TD-U1B
2 BMA-D2-USA
3 BMU-D3-USA
4
位置2和3是正确的。这些是以下内容的输出:
else:
Output = '-'.join([item.get_text() for item in cells[5].find_all('a')])
F.append(Output)
位置0和1不正确。这些是以下内容的输出:
F.append(cells[5].find(text=True))