国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python爬蟲實例扒取2345天氣預報

2020-02-22 23:21:45
字體:
來源:轉載
供稿:網友

寒假里學習了一下Python爬蟲,使用最簡單的方法扒取需要的天氣數據,對,沒聽錯,最簡單的方法。甚至沒有一個函數封裝。。

網址:http://tianqi.2345.com/wea_history/53892.htm

火狐中右鍵查看網頁源代碼,沒有發現天氣數據,因此推斷網頁采用的json格式數據。

右擊->查看元素->網絡->JS,找到了位置

用Python爬蟲下載為json格式數據存儲下來,代碼如下:

#-*- coding:utf-8 -*- import urllib2 import json  months = [1,2,3,4,5,6,7,8,9,10,11,12] years = [2011,2012,2013,2014,2015,2016] city = [53892]  #邯鄲代碼53892  for y in years:   for m in months:     for c in city:       url = "http://tianqi.2345.com/t/wea_history/js/"+str(c)+"_"+str(y)+str(m)+".js?qq-pf-to=pcqq.c2c"       print url       html = urllib2.urlopen(url)       srcData = html.read()       #JsonData = json.loads(srcData)       file = open("d:/json/"+str(c)+"handan/weather"+str(c)+"_"+str(y)+str(m)+".json","w")       file.write(srcData)       file.close() 
扒取存到本地:

因為是剛學,學一點就動手實踐了一下,還沒有學到json的轉換,直接使用的正則匹配,提取json中的數據,直接打印

提取轉換json文件中的數據Python代碼:

#-*- coding:utf-8 -*- import json import re import time  Year = [2014] Month = [1]  for y in Year:   for m in Month:          """     2016年2月15日終于改成功。     是因為正則匹配后的編碼問題,導致輸出時無法顯示。     在每個正則匹配的元組后添加 .decode('gbk').encode('utf-8'),成功輸出     """     content = fRead.read()     pattern = re.compile('{ymd:/'(.*?)/',bWendu:/'(.*?)/',yWendu:/'(.*?)/',tianqi:/'(.*?)/',fengxiang:/'(.*?)/',fengli:/'(.*?)/'},',re.S)     items = re.findall(pattern,content)     for item in items:       print item[0].decode('gbk').encode('utf-8'),","+item[1].decode('gbk').encode('utf-8'),","+item[2].decode('gbk').encode('utf-8'),","+item[3].decode('gbk').encode('utf-8'),","+item[4].decode('gbk').encode('utf-8'),","+item[5].decode('gbk').encode('utf-8')       time.sleep(0.1)      fRead.close() 

使用Sublime Text 3運行

使用正則處理的一大問題就是,格式不整齊,總會漏掉一些數據。可能是由于匹配的速度過快導致部分數據缺失,但是通過time.sleep() 睡眠依舊不能解決問題。

由此可以看出正則匹配時的缺陷,待以后使用Python中專門用于處理json數據的包以后,再重新試一下

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 韶关市| 北辰区| 民丰县| 金门县| 宝鸡市| 绥宁县| 沛县| 宜兴市| 舟山市| 马龙县| 潼关县| 恩施市| 通江县| 闵行区| 太白县| 上栗县| 云南省| 白河县| 青州市| 儋州市| 板桥市| 民丰县| 得荣县| 开原市| 通江县| 锡林郭勒盟| 德庆县| 淮滨县| 保靖县| 淮阳县| 龙江县| 彰武县| 当涂县| 蒲江县| 全椒县| 渭南市| 万源市| 方城县| 岱山县| 仙游县| 东方市|