无法解析来自天气网站的数据
Unable to parse data from weather website
嘿,我想解析来自以下网站的天气数据:http://www.indiaweather.gov.in
如果你发现你有一个搜索栏,可以让你输入任何印度城市的名称,当你点击“开始”时,你最终会进入一个包含该城市天气数据的页面。
谁能帮我写一个脚本,让我输入城市的名称,并显示城市的天气数据?
我不知道如何解析数据。
谢谢!
你可以用美丽的汤!在特定 html 标签之间获取所需数据。如果您想自己做,您可以通过调用网站的 api post 您的数据。首先安装请求。 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'])
嘿,我想解析来自以下网站的天气数据:http://www.indiaweather.gov.in
如果你发现你有一个搜索栏,可以让你输入任何印度城市的名称,当你点击“开始”时,你最终会进入一个包含该城市天气数据的页面。
谁能帮我写一个脚本,让我输入城市的名称,并显示城市的天气数据?
我不知道如何解析数据。
谢谢!
你可以用美丽的汤!在特定 html 标签之间获取所需数据。如果您想自己做,您可以通过调用网站的 api post 您的数据。首先安装请求。 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'])