本文目录一览:
- 1、求助:用python获取天气预报
- 2、如何用python爬天气数据库
- 3、python怎么自动抓取网页上每日天气预报
- 4、python如何提取网页天气信息
- 5、如何使用python利用api获取天气预报
- 6、Python爬取天气信息的时候出现了错误提示
求助:用python获取天气预报
# 获取温度、湿度、风力等
WEATHER_URL_A = ""
# 获取天气状况、最大/小温度等
WEATHER_URL_B = ""
# 获取未来7天天气数据
WEATHER_URL_C = ""
URL里%s指城市对应的代码。详细参考:
不过这篇文章里有的接口已经不能用了。
上面我给的三个URL里,前两个直接返回json格式数据;第三个返回是一个页面,需要自己从页面里提取想要的信息。
如何用python爬天气数据库
最好用spynner,ghost.py,之类的模拟浏览器的来做, urllib是没有用的,只能抓html静态!
python怎么自动抓取网页上每日天气预报
使用到了urllib库和bs4。bs4提供了专门针对html的解析功能,比用RE方便许多。
# coding : UTF-8import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )from bs4 import BeautifulSoupimport csvimport urllibdef get_html(url):
html = urllib.urlopen(url) return html.read()def get_data(html_text):
final = []
bs = BeautifulSoup(html_text, "html.parser")
body = bs.body
data = body.find('div', {'id': '7d'})
ul = data.find('ul')
li = ul.find_all('li') for day in li:
temp = []
date = day.find('h1').string
temp.append(date)
inf = day.find_all('p')
temp.append(inf[0].string,) if inf[1].find('span') is None:
temperature_highest = None
else:
temperature_highest = inf[1].find('span').string
temperature_highest = temperature_highest.replace('C', '')
temperature_lowest = inf[1].find('i').string
temperature_lowest = temperature_lowest.replace('C', '')
temp.append(temperature_highest)
temp.append(temperature_lowest)
final.append(temp) return finaldef write_data(data, name):
file_name = name with open(file_name, 'a') as f:
f_csv = csv.writer(f)
f_csv.writerows(data)if __name__ == '__main__':
html_doc = get_html('')
result = get_data(html_doc)
write_data(result, 'weather.csv') print result12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
运行结果保存在csv文件中
python如何提取网页天气信息
bs4是可以提取的,因为你这一段里面出现的文字都是你要的,不存在剔除的考虑。
网页解析:要么使用bs4、要么使用bs4+re(正则),或者你可以使用以下PyQuery,这个也是用在网页爬虫解析页面的模块。
如果还是琢磨不出来,你把你这整个的html源码发上来,我搞搞,现在只看一段很难帮你
如何使用python利用api获取天气预报
这个和用不用python没啥关系,是数据来源的问题。调用淘宝API,使用 api相关接口获得你想要的内容,我 记得api中有相关的接口,你可以看一下接口的说明。用python做爬虫来进行页面数据的获取。希望能帮到你。
Python爬取天气信息的时候出现了错误提示
应该是编码的问题,建议city这个字典的key使用unicode,即u'郑州'。
另外对输入值做编码转换(str.encode('unicode')),编码是一个头疼的问题,你可以print下key和你输入的内容是不是一个东西。
最后,建议使用字典的get方法来取值,即city.get(str)。
如果是自己用的代码或者城市不多,可以使用代码来替代,例如0371