Как извлечь и напечатать текст внутри всех тегов <td>в таблице с python - PullRequest
0 голосов
/ 31 марта 2020

Я хотел бы извлечь текст (число) из всех тегов в таблице в python. Я новичок в кодировании python, поэтому извините за беспорядок в моем коде. Вот мой код для этого раздела.

r = requests.get(saurl)
soupsa = BeautifulSoup(r.text, 'html.parser')
cases_table = soupsa.find('table')
for state in cases_table.find_all('tbody'):
rows = state.find_all('tr')
for row in rows:
    numcases = row.find('class="numeric"')
    aunumcases = row.find('td class="numeric"')
    print(aunumcases)

Таблица html, которую я пытаюсь очистить, выглядит следующим образом.

<tbody>
      <tr>
        <th>
          Location
        </th>
        <th class="text--align-right">
          Confirmed cases*            </th>
      </tr>
      <tr>
        <td>
            <p>Australian Capital Territory</p>
        </td>
        <td class="numeric">
            <p><span>78</span></p>
        </td>
      </tr>
      <tr>
        <td>
          <p>New South Wales</p>
        </td>
        <td class="numeric">
          2,032            </td>
      </tr>
      <tr>
        <td>
          <p>Northern Territory</p>
        </td>
        <td class="numeric">
            14            </td>
      </tr>
      <tr>
        <td>
          <p>Queensland</p>
        </td>
        <td class="numeric">
          689            </td>
      </tr>
      <tr>
        <td>
          <p>South Australia</p>
        </td>
        <td class="numeric">
          305            </td>
      </tr>
      <tr>
        <td>
          <p>Tasmania</p>
        </td>
        <td class="numeric">
          65            </td>
      </tr>
      <tr>
        <td>
          <p>Victoria</p>
        </td>
        <td class="numeric">
          821            </td>
      </tr>
      <tr>
        <td>
          <p>Western Australia</p>
        </td>
        <td class="numeric">
          355            </td>
      </tr>
      <tr>
        <td>
          <p><strong>Total**</strong></p>
        </td>
        <td class="numeric">
          <strong>4,359</strong>
        </td>
      </tr>
    </tbody>

Проблема заключается в том, что я запускаю код и напечатайте 'aunumcases', он возвращает 'none'. Любая помощь будет действительно сокращена!

1 Ответ

1 голос
/ 01 апреля 2020

Это таблица stati c, поэтому я бы просто использовал pandas

import pandas as pd

table = pd.read_html('https://www.health.gov.au/news/health-alerts/novel-coronavirus-2019-ncov-health-alert/coronavirus-covid-19-current-situation-and-case-numbers')[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...