本文目錄一覽:
- 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
原創文章,作者:XEIQP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/329784.html