【发布时间】:2017-08-14 13:31:22
【问题描述】:
我想从天气站点中提取数据并将其复制到 csv 文件中以供进一步分析。我正在使用 python 和 BeautifulSoup。我一直在努力从天气报告和数值中获取受影响的城市。 Hier 是 HTML 的样子:
> <html> <head> <meta charset="utf-8"/> </head> <body> <div
> id="main"> <div id="wettertab">
> <p>
> <strong>
> Letzte Aktualisierung: Do, 10. Aug, 18:41 Uhr
> </strong>
> </p>
> <h1 id="Hessen">
> Hessen
> </h1>
> <h2 id="Gemeinde Aarbergen">
> Gemeinde Aarbergen
> </h2>
> <table>
> <colgroup>
> <col <="" class="firstColumn" col=""/>
> <col class="colorColumn"/>
> <col class="colorColumn"/>
> <col class="colorColumn"/>
> <thead>
> <tr>
> <th>
> Schlagzeile
> </th>
> <th>
> Gültig von
> </th>
> <th>
> Gültig bis
> </th>
> <th>
> Beschreibung
> </th>
> </tr>
> </thead>
> <tr>
> <td>
> Amtliche WARNUNG vor DAUERREGEN
> </td>
> <td>
> Do, 10. Aug, 12:00 Uhr
> </td>
> <td>
> Sa, 12. Aug, 06:00 Uhr
> </td>
> <td>
> Es tritt Dauerregen mit Unterbrechungen auf. Dabei werden Niederschlagsmengen zwischen 40 l/m² und 60 l/m² erwartet.
> </td>
> </tr>
> </colgroup>
> </table>
我需要表格中的四个值:
<tr>
<td> Amtliche WARNUNG vor DAUERREGEN
</td>
<td> Do, 10. Aug, 12:00 Uhr
</td>
<td> Sa, 12. Aug, 06:00 Uhr
</td>
<td> Es tritt Dauerregen mit Unterbrechungen auf. Dabei werden Niederschlagsmengen zwischen 40 l/m² und 60 l/m² erwartet.
</td>
</tr>
我还需要地点的名称:
<h2 id="Gemeinde Aarbergen">
Gemeinde Aarbergen
</h2>
“h2”的 HTML 标记总是在表格之前,但它不属于表格本身,正如我所见。
到目前为止,这是我的代码 sn-p:
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("html_warnung.html")
soup = BeautifulSoup(html, 'html.parser')
table = soup.findAll("table")
for div in table:
row = ''
rows = div.findAll('td')
for row in rows:
print(row.text)
现在我可以打印表格中的值,还可以通过以下方式获取城市名称:
gemeinde_list = []
for gemeinde in soup.findAll('h2'):
gemeinde_list.append(gemeinde.get("id"))
将所有信息一起导出到 csv 文件以便获得分隔值的最佳方法是什么:
Gemeinde Aarbergen
Amtliche WARNUNG vor DAUERREGEN
做,8 月 10 日,12:00 Uhr
萨,8 月 12 日,06:00 Uhr
Es tritt Dauerregen wechselnder Intensität auf。 Dabei werden Niederschlagsmengen zwischen 35 l/m² 和 50 l/m² erwartet。在 Staulagen werden Mengen bis 70 l/m² erreicht。
我正在使用 Python 3.6 请帮忙。
【问题讨论】:
-
可以使用Python自带的csv模块。
-
嗨 Mekicha,是的,我想困难的部分是如何将 html 文件中的值放在一起,当我把它们放在一起时,可能是一个列表,我想我可以存储它们在 csv 中。我目前的问题是所描述的价值观。
标签: python beautifulsoup