Проблема с Beautifulsoup .find (text = true) - PullRequest
0 голосов
/ 14 ноября 2018
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. Код работает, но список 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...