中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何爬取2345天氣預報

發布時間:2021-07-26 11:09:47 來源:億速云 閱讀:280 作者:小新 欄目:開發技術

這篇文章主要介紹了Python如何爬取2345天氣預報,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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

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

Python如何爬取2345天氣預報

用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數據的包以后,再重新試一下

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python如何爬取2345天氣預報”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东兴市| 海林市| 西藏| 肇庆市| 德钦县| 天镇县| 塔河县| 青阳县| 无锡市| 大兴区| 定日县| 广丰县| 沙湾县| 利川市| 乌鲁木齐县| 平塘县| 张家港市| 海南省| 顺平县| 嘉峪关市| 靖边县| 鄯善县| 如皋市| 论坛| 泊头市| 丰县| 丹东市| 翁牛特旗| 辉南县| 阿拉善左旗| 明光市| 休宁县| 衡水市| 山丹县| 濮阳县| 漳平市| 罗城| 新化县| 溧阳市| 景洪市| 商水县|