創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、雅安服務器托管、營銷軟件、網(wǎng)站建設、平城網(wǎng)站維護、網(wǎng)站推廣。本篇文章給大家分享的是有關Python如何讀取網(wǎng)絡數(shù)據(jù),小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
很多時候,程序并不能直接展示本地文件中的數(shù)據(jù),此時需要程序讀取網(wǎng)絡數(shù)據(jù),并展示它們。
比如前面介紹的 http://lishi.tianqi.com 站點的數(shù)據(jù),它并未提供下載數(shù)據(jù)的鏈接(前面程序所展示的 csv 文件本身就是使用程序抓取下來的)。在這種情況下,程序完全可以直接解析網(wǎng)絡數(shù)據(jù),然后將數(shù)據(jù)展示出來。
前面已經(jīng)介紹了 Python 的網(wǎng)絡支持庫 urllib,通過該庫下的 request 模塊可以非常方便地向遠程發(fā)送 HTTP 請求,獲取服務器響應。因此,本程序的思路是使用 urllib.request 向 lishi.tianqi.com 發(fā)送請求,獲取該網(wǎng)站的響應,然后使用 Python 的 re 模塊來解析服務器響應,從中提取天氣數(shù)據(jù)。
本程序將會通過網(wǎng)絡讀取 http://lishi.tianqi.com 站點的數(shù)據(jù),并展示 2017 年廣州的最高氣溫和最低氣溫。
import re from datetime import datetime from datetime import timedelta from matplotlib import pyplot as plt from urllib.request import * # 定義一個函數(shù)讀取lishi.tianqi.com的數(shù)據(jù) def get_html(city, year, month): #① url = 'http://lishi.tianqi.com/' + city + '/' + str(year) + str(month) + '.html' # 創(chuàng)建請求 request = Request(url) # 添加請求頭 request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64)' + 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36') response = urlopen(request) # 獲取服務器響應 return response.read().decode('gbk') # 定義3個list列表作為展示的數(shù)據(jù) dates, highs, lows = [], [], [] city = 'guangzhou' year = '2017' months = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'] prev_day = datetime(2016, 12, 31) # 循環(huán)讀取每個月的天氣數(shù)據(jù) for month in months: html = get_html(city, year, month) # 將html響應拼起來 text = "".join(html.split()) # 定義包含天氣信息的div的正則表達式 patten = re.compile('(.*?)
程序中第 32 行代碼使用正則表達式來獲取包含全部天氣信息的
程序中第 34 行代碼使用正則表達式來匹配天氣
程序中第 38 行代碼使用正則表達式來匹配每日天氣
以上就是Python如何讀取網(wǎng)絡數(shù)據(jù),小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道。