Прямая очистка HTML-таблицы с помощью beautifulsoup?

#python #pandas #beautifulsoup #html-table

#python #панды #beautifulsoup #html-таблица

Вопрос:

Есть ли какой-либо прямой способ очистки HTML-таблицы? Было бы здорово, если бы мы дали класс HTML table и он предоставил результаты?

Например, мне нужно получить таблицу для этого URL

Я могу использовать эту процедуру, но мне нужно чистое или прямое решение

Ответ №1:

Ну, тогда попробуйте это:

 import requests
import pandas as pd

url = "https://buchholz-stadtwerke.de/wasseranalyse.html"

df = pd.read_html(requests.get(url).text, flavor="bs4")
df = pd.concat(df)
df.to_csv("data.csv", index=False)
print(df)
  

Вывод:

 [                    Parameter  Einheit    Grenzwert Messwert, Februar 2020
0            Wassertemperatur       °C          NaN                     98
1         Leitfähigkeit (25°)    µS/cm         2790                    302
2   Sauerstoff (elektrochem.)     mg/l          NaN                    109
3                     pH-Wert      NaN  6,5 bis 9,5                    806
4             Sättigungsindex      NaN          NaN                    001
5         Karbonathärte (dH°)      °dH          NaN                    454
6           Gesamthärte (dH°)      °dH          NaN                    645
7                Härtebereich      NaN          NaN                  weich
8         Calcitlösekapazität     mg/l            5                    -01
and so on...
  

Кроме того, это выдает .csv файл с данными из таблицы.

Редактировать:

Это похоже на взлом, но это работает. На основе комментария и URL-адреса вы можете перебирать таблицы из df и разбивать их на отдельные файлы.

 import requests
import pandas as pd

url = "https://www.swd-ag.de/energie-wasser/wasser/trinkwasseranalyse/"

df = pd.read_html(io=requests.get(url).text, flavor="bs4")
for index, table in enumerate(df, start=1):
    table.to_csv(f"table_{index}.csv", index=False)
  

Комментарии:

1. Есть ли какой-либо способ определить таблицу отдельно? У меня также есть страницы, на которых есть 2 таблицы

2. Можете ли вы поделиться URL-адресом страницы с двумя таблицами?

3. Например, вот много таблиц https://www.swd-ag.de/energie-wasser/wasser/trinkwasseranalyse/

4. Я обновил ответ. Посмотрите, это то, что вы хотели.

5. Это работает, но было бы здорово, если бы мы могли определить класс таблицы. Но я доволен результатами, еще раз спасибо!