久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Python是如何查詢天氣的(4)

今天馬哥教育要跟大家分享的文章是Python是如何查詢天氣的(4)?在上一講我們已經可以查詢天氣了,但是是不是有人對城市代碼的查詢還感到不滿意呢?今天我們就這里的內容再跟大家深入講解一下,Python入門新手和正在Python學習的小伙伴快來看一看吧,希望能夠對大家有所幫助 !

了解一下城市代碼的抓取過程,也會讓你對網頁抓取有更深的理解哦。

天氣網的城市代碼信息結構比較復雜,所有代碼按層級放在了很多xml為后綴的文件中。而這些所謂的“xml”文件又不符合xml的格式規范,導致在瀏覽器中無法顯示,給我們的抓取又多加了一點難度。

首先,抓取省份的列表:

url1 = 'http://m.weather.com.cn/data5/city.xml'

content1 = urllib2.urlopen(url1).read()

provinces = content1.split(',')

輸出content1可以查看全部省份代碼:

01|北京,02|上海,03|天津,...

對于每個省,抓取城市列表:

url = 'http://m.weather.com.cn/data3/city%s.xml'

for p in provinces:

p_code = p.split('|')[0]

url2 = url % p_code

content2 = urllib2.urlopen(url2).read()

cities = content2.split(',')

輸出content2可以查看此省份下所有城市代碼:

1901|南京,1902|無錫,1903|鎮江,...

再對于每個城市,抓取地區列表:

for c in cities[:3]:

c_code = c.split('|')[0]

url3 = url % c_code

content3 = urllib2.urlopen(url3).read()

districts = content3.split(',')

content3是此城市下所有地區代碼:

190101|南京,190102|溧水,190103|高淳,...

最后,對于每個地區,我們把它的名字記錄下來,然后再發送一次請求,得到它的最終代碼:

for d in districts:

d_pair = d.split('|')

d_code = d_pair[0]

ame = d_pair[1]

url4 = url % d_code

content4 = urllib2.urlopen(url4).read()

code = content4.split('|')[1]

name和code就是我們最終要得到的城市代碼信息。它們格式化到字符串中,最終保存在文件里:

line = " '%s': '%s',n" % (name, code)

result += line

同時你也可以輸出它們,以便在抓取的過程中查看進度:

print name + ':' + code
自學Python編程【第四十四節】查天氣(4)

如果你只是想抓幾個測試一下,并不用全部抓下來,在provices后面加上[:3],抓3個省的試試看就好了。

恭喜你在Python的道路上又堅持了一天,相信到今天為止,你可以毫無壓力地跟別人說查詢天氣太簡單了,一串代碼的事!那你了解完了如何用Python去查詢天氣,那你可以查詢下別的嗎?比如火車票呢?思考一下,并試著動手實踐一下吧!

以上就是馬哥教育今天為大家分享的關于Python是如何查詢天氣的(4)的文章,希望本篇文章能夠對正在 Python學習?和從事Python相關工作的小伙伴們有所幫助,想要了解更多相關知識記得關注馬哥教育官網。最后祝愿小伙伴們工作順利!

聲明:文章來源于網絡,侵刪!

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 鹤峰县| 彭水| 铜梁县| 迁安市| 锡林浩特市| 东山县| 连平县| 扶沟县| 象山县| 佛教| 怀安县| 贡觉县| 连云港市| 青铜峡市| 苏尼特右旗| 理塘县| 罗城| 静宁县| 西贡区| 温宿县| 邳州市| 图们市| 佛冈县| 奉新县| 襄汾县| 南投市| 大理市| 天等县| 林西县| 通江县| 胶州市| 怀集县| 任丘市| 石台县| 泸州市| 雷山县| 嘉鱼县| 昆山市| 昌平区| 曲麻莱县| 永善县|