欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

#-*- 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í)踐了一下,還沒(méi)有學(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匹配后的編碼問(wèn)題,導(dǎo)致輸出時(shí)無(wú)法顯示。 
    在每個(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)行

使用正則處理的一大問(wèn)題就是,格式不整齊,總會(huì)漏掉一些數(shù)據(jù)??赡苁怯捎谄ヅ涞乃俣冗^(guò)快導(dǎo)致部分?jǐn)?shù)據(jù)缺失,但是通過(guò)time.sleep() 睡眠依舊不能解決問(wèn)題。

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

相關(guān)文章

  • python神經(jīng)網(wǎng)絡(luò)使用tensorflow構(gòu)建長(zhǎng)短時(shí)記憶LSTM

    python神經(jīng)網(wǎng)絡(luò)使用tensorflow構(gòu)建長(zhǎng)短時(shí)記憶LSTM

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)tensorflow構(gòu)建長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)LSTM,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python動(dòng)態(tài)進(jìn)度條的實(shí)現(xiàn)代碼

    python動(dòng)態(tài)進(jìn)度條的實(shí)現(xiàn)代碼

    有時(shí)候我們需要使用print打印工作進(jìn)度,正常使用print函數(shù)會(huì)導(dǎo)致刷屏的現(xiàn)象,本文通過(guò)實(shí)例代碼給大家介紹python動(dòng)態(tài)進(jìn)度條的實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧
    2019-07-07
  • python web自制框架之接受url傳遞過(guò)來(lái)的參數(shù)實(shí)例

    python web自制框架之接受url傳遞過(guò)來(lái)的參數(shù)實(shí)例

    今天小編就為大家分享一篇python web自制框架之接受url傳遞過(guò)來(lái)的參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實(shí)例

    pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實(shí)例

    今天小編就為大家分享一篇pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 簡(jiǎn)單快捷:NumPy入門(mén)教程的環(huán)境設(shè)置

    簡(jiǎn)單快捷:NumPy入門(mén)教程的環(huán)境設(shè)置

    NumPy是Python語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù),支持高階大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù),本教程是為那些想了解NumPy的基礎(chǔ)知識(shí)和各種功能的人準(zhǔn)備的,它對(duì)算法開(kāi)發(fā)人員特別有用,需要的朋友可以參考下
    2023-10-10
  • Python+Redis從零打造分布式鎖實(shí)戰(zhàn)示例

    Python+Redis從零打造分布式鎖實(shí)戰(zhàn)示例

    Redis作為一款高性能的內(nèi)存鍵值數(shù)據(jù)庫(kù),憑借其支持原子操作、高并發(fā)和數(shù)據(jù)持久化等特性,非常適合用來(lái)實(shí)現(xiàn)分布式鎖,本文將詳細(xì)探討如何使用Python結(jié)合Redis從簡(jiǎn)單到復(fù)雜地實(shí)現(xiàn)分布式鎖,并提供相應(yīng)的示例代碼
    2024-01-01
  • 最新評(píng)論