无法解析天气网站上的数据

时间:2016-09-04 12:24:31

标签: python html parsing beautifulsoup weather

嘿,我想解析以下网站的天气数据:http://www.indiaweather.gov.in

如果您发现有一个搜索栏,可以让您输入任何印度城市的名称,当您点击时,您最终会在一个页面上显示该城市的天气数据。

有人可以帮我一个脚本,让我输入城市名称,并显示城市的天气数据吗?

我不知道如何解析数据。

谢谢!

1 个答案:

答案 0 :(得分:-1)

你可以使用美丽的汤!在特定的html标签之间获取所需的数据。如果你想自己做,你可以通过调用网站的api发布你的数据。首先安装请求。 pip install requests然后

import re
import requests


# the data is between align="left"><font size="3px"> and </font> in each specific part so we use re to find it
def find_data(line):
    return re.search('align="left"><font size="3px">(.*?)</font>', line).group(1)

params = {
    'tags': city_name,
    'submit': 'Go'
}

response = requests.post('http://www.indiaweather.gov.in/?page_id=942', data=params).content.splitlines()

try:
    current_temp = find_data(response[357])
    max_temp = find_data(response[362])
    min_temp = find_data(response[369])
    last_day_rainfall = find_data(response[376])
    current_wind_direction = find_data(response[382])
    current_wind_speed = find_data(response[389])
    current_dew_point = find_data(response[396])
    current_sea_level_pressure = find_data(response[403])
    print(current_temp, max_temp, min_temp, last_day_rainfall, current_wind_direction, current_wind_speed,
          current_dew_point, current_sea_level_pressure)

except IndexError:
    print('No Info Found For %s' % params['tags'])