从多个页面抓取天气数据

时间:2019-11-27 06:42:04

标签: python pandas web-scraping beautifulsoup

我是python的新手

我想从“ http://www.estesparkweather.net/archive_reports.php?date=200901”网站上抓取天气数据 我必须抓取从2009-01-01到2018-10-28每一天的天气数据的所有可用属性 我必须将抓取的数据表示为pandas dataframe对象。

下面应该是有关数据框的详细信息

*[root@kolla ~]# time neutron port-list | wc -l
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
98

real    0m16.366s
user    0m0.735s
sys     0m0.164s*



*[root@kolla ~]# time nova list | wc -l
25

real    0m10.767s
user    0m0.798s
sys     0m0.121s
[root@kolla ~]# time port list | wc -l*

在抓取之后,我需要将数据框保存为名称为“ dataframe.pk”的泡菜文件。

下面是我最初尝试使用Beautifulsoup读取页面的代码,但是每月有多个页面,我不确定如何循环2009年1月至2018年10月的网址并将其内容添加到汤中,有人可以帮忙吗?

Expected column names (order dose not matter):

 ['Average temperature (°F)', 'Average humidity (%)',
 'Average dewpoint (°F)', 'Average barometer (in)',
 'Average windspeed (mph)', 'Average gustspeed (mph)',
 'Average direction (°deg)', 'Rainfall for month (in)',
 'Rainfall for year (in)', 'Maximum rain per minute',
 'Maximum temperature (°F)', 'Minimum temperature (°F)',
 'Maximum humidity (%)', 'Minimum humidity (%)', 'Maximum pressure',
 'Minimum pressure', 'Maximum windspeed (mph)',
 'Maximum gust speed (mph)', 'Maximum heat index (°F)']

Each record in the dataframe corresponds to weather details of a given day
The index column is date-time format (yyyy-mm-dd)
I need to perform necessary data cleaning and type cast each attributes to relevent data type

1 个答案:

答案 0 :(得分:0)

要阅读时间范围为2009-01-01至2018-10-28的信息,您将必须了解URL模式

10+6.99

示例:

console.log(10+6.99); //16.990000000000002
console.log(10+5.99); //15.99

因此,您需要创建一个嵌套循环,以读取每个年/月组合的数据。

类似的东西:

http://www.estesparkweather.net/archive_reports.php?date=YYYYMM