#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. Это работает, но было бы здорово, если бы мы могли определить класс таблицы. Но я доволен результатами, еще раз спасибо!