本文目錄一覽:
- 1、如何利用python爬取某個地方1年的天氣
- 2、求助:用python獲取天氣預報
- 3、python怎麼自動抓取網頁上每日天氣預報
- 4、如何使用python利用api獲取天氣預報
- 5、python如何提取網頁天氣信息
如何利用python爬取某個地方1年的天氣
先要找到提供這個地方天氣信息的網站
然後用firefox之類的瀏覽器分析
之後用python按分析的結果來提取所需要的數據
求助:用python獲取天氣預報
# 獲取溫度、濕度、風力等
WEATHER_URL_A = “”
# 獲取天氣狀況、最大/小溫度等
WEATHER_URL_B = “”
# 獲取未來7天天氣數據
WEATHER_URL_C = “”
URL里%s指城市對應的代碼。詳細參考:
不過這篇文章里有的介面已經不能用了。
上面我給的三個URL里,前兩個直接返回json格式數據;第三個返回是一個頁面,需要自己從頁面里提取想要的信息。
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利用api獲取天氣預報
你用的介面已經封掉了,試試這個:citykey=101210101
返回的數據是經過gzip壓縮的,如果你用urllib,需要先把獲取的二進位數據解壓,再解碼成字元串。用requests庫就方便多了,包括編碼都幫你自動解決,不需要自己操心。
順便推薦Chrome的JSON-Handle插件,查看JSON非常方便。
python如何提取網頁天氣信息
bs4是可以提取的,因為你這一段裡面出現的文字都是你要的,不存在剔除的考慮。
網頁解析:要麼使用bs4、要麼使用bs4+re(正則),或者你可以使用以下PyQuery,這個也是用在網頁爬蟲解析頁面的模塊。
如果還是琢磨不出來,你把你這整個的html源碼發上來,我搞搞,現在只看一段很難幫你
原創文章,作者:RNBWJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330518.html