Beautifulsoup .find(text = true)

时间:2018-11-13 21:01:39

标签: python python-3.x beautifulsoup

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))

0 个答案:

没有答案