BeautifulSoup не может найти строки - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь извлечь несколько ячеек из таблицы на веб-странице и в конечном итоге экспортировать результаты в Excel.
Эти ячейки расположены в tbody с идентификатором 'fila_88'.
Каждая строка содержится внутри тега .
Каждая ячейка содержится внутри тега.
У меня есть следующий код в python:

sopa = BeautifulSoup(browser.page_source, 'html.parser') # Creates BS element
tabela = sopa.find_all('tbody', id = "fila_88") # Extracts table from source, this works
linha = tabela.find_all('tr') # This line fails

Я получаю ошибку:

"ResultSet object has no attribute '%s'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?" % key

My Исходный код выглядит так: https://pastebin.com/raw/P2aTsXnw

Может кто-нибудь пролить свет на то, что я делаю неправильно?

Редактировать: вот для ясности вот извлеченная таблица: https://pastebin.com/raw/sGTYPvaD

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Измените на:

sopa = BeautifulSoup(browser.page_source, 'html.parser') # Creates BS element
tabela = sopa.find('tbody', {'id':"fila_88"}) # Extracts table from source, this works
linha = tabela.find_all('tr')

Также рассмотрите возможность использования pandas. Он возвращает список таблиц из html, а затем просто берет ту, которую вы хотите. Пример:

import pandas as pd

dfs = pd.read_html(browser.page_source) 

print(dfs[1].to_string())

Вывод:

print (dfs[1].to_string())
    Solic.          Abertura                                        Solicitante                     Serviço                         Fila     Transferência Pri.  SLA
0   208293  06/03/2018 12:13  (lcmuniz) Leia Cristiane Loeblein Fernandes Muniz                       Erros  MV Sistemas (customizações)  25/09/2019 21:37    B  NaN
1   208615  08/03/2018 14:03                       (randreola) Rafaela Andreola                       Erros  MV Sistemas (customizações)  24/09/2019 11:15    A  NaN
2   209805  20/03/2018 11:32                        (rejane) Rejane Maria Basso                       Erros                  MV Sistemas  30/01/2020 10:06    B  NaN
3   209891  20/03/2018 17:11                       (randreola) Rafaela Andreola                  Adequações  MV Sistemas (customizações)  28/09/2019 19:51    4  NaN
4   210035  22/03/2018 10:03                        (rejane) Rejane Maria Basso                       Erros                  MV Sistemas  20/12/2018 15:28    B  NaN
5   211811  09/04/2018 17:20                       (randreola) Rafaela Andreola                       Erros                  MV Sistemas  04/09/2019 14:46    B  NaN
6   212559  17/04/2018 10:34                        (rejane) Rejane Maria Basso                  Adequações  MV Sistemas (customizações)  28/09/2019 21:40    4  NaN
7   216167  23/05/2018 15:16                  (lbarros) Loreci Klipel de Barros                  Adequações                  MV Sistemas  31/07/2019 11:40    5  NaN
8   219056  27/06/2018 09:11                        (rejane) Rejane Maria Basso                    Cadastro                  MV Sistemas  30/09/2019 15:34    5  NaN
9   219081  27/06/2018 10:50                        (rejane) Rejane Maria Basso                  Adequações  MV Sistemas (customizações)  28/09/2019 22:09    4  NaN
10  219376  29/06/2018 11:44                       (randreola) Rafaela Andreola                       Erros                  MV Sistemas  31/01/2020 11:23    A  NaN
11  222223  02/08/2018 09:49                       (randreola) Rafaela Andreola                       Erros  MV Sistemas (customizações)  28/09/2019 22:15    4  NaN
12  223034  10/08/2018 16:27                        (rejane) Rejane Maria Basso                       Erros  MV Sistemas (customizações)  14/10/2019 15:27    A  NaN
13  224564  29/08/2018 11:40                          (fvivian) Fernando Vivian                  Adequações  MV Sistemas (customizações)  25/09/2019 22:45    5  NaN
14  230189  06/11/2018 17:03                   (tlaurini) Tarcio Jovani Laurini                  Adequações                  MV Sistemas  12/12/2018 16:13    4  NaN
15  230813  12/11/2018 17:11  (cfontoura) Cleonice Fatima Faganello da Fontoura                  Adequações  MV Sistemas (customizações)  28/09/2019 22:31    4  NaN
16  231827  23/11/2018 10:56               (cverdi) Clanir Lurdes Leoncio Verdi                     Dúvidas                  MV Sistemas  04/10/2019 16:13    4  NaN
17  232326  29/11/2018 12:50              (vsiqueira) Viviane Oliveira Siqueira                  Adequações  MV Sistemas (customizações)  28/09/2019 22:35    4  NaN
18  232474  30/11/2018 13:57                        (rejane) Rejane Maria Basso                  Adequações  MV Sistemas (customizações)  29/09/2019 09:23    4  NaN
19  232496  30/11/2018 15:57                  (brunomolina) Bruno Vieira Molina                  Adequações  MV Sistemas (customizações)  25/09/2019 11:51    5  NaN
20  234738  02/01/2019 18:03               (cverdi) Clanir Lurdes Leoncio Verdi                       Erros                  MV Sistemas  23/01/2019 09:37    4  NaN
21  236830  23/01/2019 13:56                          (mmenegat) Monica Menegat                  Adequações  MV Sistemas (customizações)  29/09/2019 09:55    4  NaN
...
0 голосов
/ 05 февраля 2020

Можете ли вы попробовать это

  tabela = sopa.find('tbody', id = "fila_88") 
   for  linha in tabela.find_all('tr'):
    row= linha.find('celltag')
...