最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬蟲實(shí)例扒取2345天氣預(yù)報(bào)

 更新時(shí)間:2018年03月04日 14:17:52   作者:BieberSen  
本篇文章給大家詳細(xì)分析了通過Python爬蟲如何采集到2345的天氣預(yù)報(bào)信息,有興趣的朋友參考學(xué)習(xí)下吧。

寒假里學(xué)習(xí)了一下Python爬蟲,使用最簡(jiǎn)單的方法扒取需要的天氣數(shù)據(jù),對(duì),沒聽錯(cuò),最簡(jiǎn)單的方法。甚至沒有一個(gè)函數(shù)封裝。。

網(wǎng)址:http://tianqi.2345.com/wea_history/53892.htm

火狐中右鍵查看網(wǎng)頁(yè)源代碼,沒有發(fā)現(xiàn)天氣數(shù)據(jù),因此推斷網(wǎng)頁(yè)采用的json格式數(shù)據(jù)。

右擊->查看元素->網(wǎng)絡(luò)->JS,找到了位置

用Python爬蟲下載為json格式數(shù)據(jù)存儲(chǔ)下來,代碼如下:

#-*- 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() 
扒取存到本地:

因?yàn)槭莿倢W(xué),學(xué)一點(diǎn)就動(dòng)手實(shí)踐了一下,還沒有學(xué)到j(luò)son的轉(zhuǎn)換,直接使用的正則匹配,提取json中的數(shù)據(jù),直接打印

提取轉(zhuǎn)換json文件中的數(shù)據(jù)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日終于改成功。 
    是因?yàn)檎齽t匹配后的編碼問題,導(dǎo)致輸出時(shí)無法顯示。 
    在每個(gè)正則匹配的元組后添加 .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運(yùn)行

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

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

相關(guān)文章

  • 一文詳解為什么運(yùn)行Python就是找不到文件路徑

    一文詳解為什么運(yùn)行Python就是找不到文件路徑

    這篇文章主要介紹了在編程中遇到文件路徑找不到問題的原因和解決方法,包括路徑錯(cuò)誤、路徑分隔符問題、工作目錄錯(cuò)誤、權(quán)限問題以及虛擬環(huán)境的影響,并提供了一些實(shí)用的解決方案,通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • python中內(nèi)置函數(shù)range詳解

    python中內(nèi)置函數(shù)range詳解

    Python內(nèi)置函數(shù)range()是一個(gè)用于生成一系列連續(xù)的整數(shù)的函數(shù),它常用于循環(huán)結(jié)構(gòu)中,用于指定循環(huán)的次數(shù)或迭代的范圍,這篇文章主要介紹了python之內(nèi)置函數(shù)range,需要的朋友可以參考下
    2023-07-07
  • 解決使用PyCharm時(shí)無法啟動(dòng)控制臺(tái)的問題

    解決使用PyCharm時(shí)無法啟動(dòng)控制臺(tái)的問題

    今天小編就為大家分享一篇解決使用PyCharm時(shí)無法啟動(dòng)控制臺(tái)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 利用anaconda保證64位和32位的python共存

    利用anaconda保證64位和32位的python共存

    這篇文章主要為大家詳細(xì)介紹了利用anaconda保證64位和32位的python共存,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 通過實(shí)例簡(jiǎn)單了解python yield使用方法

    通過實(shí)例簡(jiǎn)單了解python yield使用方法

    這篇文章主要介紹了通過實(shí)例簡(jiǎn)單了解python yield使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Pygame用200行代碼實(shí)現(xiàn)俄羅斯方塊

    Pygame用200行代碼實(shí)現(xiàn)俄羅斯方塊

    俄羅斯方塊的邏輯很簡(jiǎn)單,就是幾個(gè)方塊組合在一起,然后下落,當(dāng)其碰到四周的墻壁后便無法移動(dòng),若某行被方塊所填滿,那么就刪除這一行,然后此行上面的所有方塊下降一行,本文給大家介紹了用Pygame實(shí)現(xiàn)俄羅斯方塊,文中代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Python猜數(shù)字算法題詳解

    Python猜數(shù)字算法題詳解

    在本篇文章里小編給大家整理的是關(guān)于Python猜數(shù)字算法題詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • Python3訪問MySQL數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟

    Python3訪問MySQL數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟

    要實(shí)現(xiàn)一個(gè)簡(jiǎn)單的IM(即時(shí)通訊)系統(tǒng),支持用戶注冊(cè)、登錄和聊天記錄存儲(chǔ),你可以使用Python和mysql數(shù)據(jù)庫(kù),以下是一個(gè)基本的實(shí)現(xiàn)步驟,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • 如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml(親測(cè)有效)

    如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml(親測(cè)有效)

    這篇文章主要介紹了如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml,親測(cè)有效,可以使用,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友參考下吧
    2023-12-12
  • python多進(jìn)程讀圖提取特征存npy

    python多進(jìn)程讀圖提取特征存npy

    這篇文章主要為大家詳細(xì)介紹了python多進(jìn)程讀圖提取特征存npy,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評(píng)論

山东省| 营山县| 长顺县| 澄迈县| 洪洞县| 清水县| 唐河县| 兴业县| 梁河县| 沙雅县| 霍州市| 紫金县| 理塘县| 黄陵县| 河曲县| 呼玛县| 朝阳市| 通州市| 阜阳市| 射阳县| 昆山市| 石城县| 嘉定区| 仪征市| 肥乡县| 互助| 花莲市| 彭阳县| 得荣县| 汝州市| 闵行区| 合阳县| 宁明县| 池州市| 临猗县| 万山特区| 剑川县| 新乡市| 石林| 乐业县| 化德县|