国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python的網(wǎng)站數(shù)據(jù)爬取與分析的技術(shù)實(shí)現(xiàn)策略

2020-07-04 02:13歐陽元東
電腦知識(shí)與技術(shù) 2020年13期
關(guān)鍵詞:數(shù)據(jù)分析

歐陽元東

摘要:Python為網(wǎng)頁數(shù)據(jù)爬取和數(shù)據(jù)分析提供了很多工具包?;赑ython的BeautifulSoup可以快速高效地爬取網(wǎng)站數(shù)據(jù),Pandas工具能方便靈活地清洗分析數(shù)據(jù),調(diào)用Python的Matplotlib工具包能便捷地把數(shù)據(jù)分析結(jié)果圖形可視化。本文以爬取www.fianqihoubao.tom網(wǎng)站的空氣質(zhì)量數(shù)據(jù),分析爬取數(shù)據(jù)并可視化圖形輸出結(jié)果為例來闡述Python爬取和分析數(shù)據(jù)的技術(shù)內(nèi)涵,旨在幫助讀者理解與學(xué)習(xí)爬蟲技術(shù)、數(shù)據(jù)清洗分析技術(shù)和結(jié)果圖形輸出技術(shù)。

關(guān)鍵詞:Python;Pandas;Matplotlib;數(shù)據(jù)爬取;數(shù)據(jù)分析

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2020113-0262-02

1Python具有無與倫比的優(yōu)點(diǎn)

TIOBE編程語言社區(qū)排行榜堪稱編程語言中的“瑯琊榜”,榜Python語言僅次于Java和C排在第三位。Python憑什么排行第三呢?因?yàn)镻ython具有編程簡(jiǎn)單明了,非常容易上手的優(yōu)點(diǎn)。其次Python語言具有龐大的愛好者強(qiáng)力支持。愛好者們檢索了健康活躍而且能提供有力支持的各種開發(fā)者社區(qū)。在社區(qū)里編程愛好者可以參考大量的文檔,指南,教程。此外,Python的開發(fā)者社區(qū)擁有難以置信的幫助氛圍,這意味著當(dāng)有人需要幫助時(shí),他們都會(huì)得到及時(shí)的響應(yīng)和反饋。最重要的是Python有龐大的外圍庫支持,可以輕松地完成廣闊的應(yīng)用。Python在數(shù)據(jù)分析、數(shù)據(jù)挖掘、人工智能、web開發(fā)等方面都大有發(fā)揮之處,再加上人工智能大量依賴數(shù)據(jù),數(shù)據(jù)獲取和處理往往借助Python實(shí)現(xiàn),因此,Python使程序員如虎添翼。

2 BeautifuiSoup工具輕松爬取網(wǎng)站數(shù)據(jù)

爬蟲是大數(shù)據(jù)行業(yè)獲取數(shù)據(jù)的核心技術(shù),沒有網(wǎng)絡(luò)爬蟲自動(dòng)地、不分晝夜地、高智能地在互聯(lián)網(wǎng)爬取免費(fèi)的數(shù)據(jù),就沒有蓬勃發(fā)展的大數(shù)據(jù)企業(yè)。Python提供了多種網(wǎng)絡(luò)數(shù)據(jù)爬蟲工具,其中BeautifulSoup就是其中之一。BeautifulSoup是Pvthon的一個(gè)庫,最主要的功能就是從網(wǎng)頁爬取數(shù)據(jù)。它提供了一些簡(jiǎn)單實(shí)用的函數(shù),通過html/xml文檔為用戶提供需要的數(shù)據(jù)。BeautifulSoup支持Python標(biāo)準(zhǔn)庫中的HTML解析器,同時(shí)還支持第三方的解析器,可以比較準(zhǔn)確,快速地爬取靜動(dòng)態(tài)網(wǎng)頁數(shù)據(jù)。

3 Pandas可以輕松實(shí)現(xiàn)數(shù)據(jù)分析數(shù)據(jù)處理

Pandas是Python在做數(shù)據(jù)分析時(shí)常用的數(shù)據(jù)分析包嘲,也是很好用的開源工具。Pandas可對(duì)較為復(fù)雜的二維或三維數(shù)組進(jìn)行計(jì)算,同時(shí)還可以處理關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)。pandas提供了高級(jí)數(shù)據(jù)結(jié)構(gòu)和函數(shù),這些數(shù)據(jù)結(jié)構(gòu)和函數(shù)讓結(jié)構(gòu)化、表格化數(shù)據(jù)的處理起來更加快速簡(jiǎn)單,更具表現(xiàn)力。Pandas提供的復(fù)雜索引函數(shù)具有處理數(shù)據(jù)的重組、切片、聚合、求子集的功能。Series和DataFrame是pandas中的數(shù)據(jù)結(jié)構(gòu)。Series是一種一維的數(shù)組型對(duì)象,它經(jīng)常用來處理表格數(shù)據(jù)的一行或者一列。DataFrame表示矩陣數(shù)據(jù)表,它包含一排序的列集合,每一列可以是不同的值類型。DataFrame既有行索引也有列索引,可以被視為一個(gè)共享相同索引的Series的字典。

4 matplotlib工具輕松呈現(xiàn)可視化圖形結(jié)果

Matplotlib是一個(gè)用于生成出版級(jí)質(zhì)量圖標(biāo)的桌面繪圖包,它幫助用戶在Python環(huán)境下進(jìn)行MATLAB風(fēng)格的繪圖。它是一個(gè)有著良好跨平臺(tái)交互特性2D繪圖工具。數(shù)據(jù)處理后需要做描述統(tǒng)計(jì)用到的直方圖、散點(diǎn)圖、條形圖等都會(huì)用到它,編程代碼簡(jiǎn)單,繪圖呈圖容易。在證券行業(yè)做數(shù)據(jù)分析的K線圖、月線圖也可用matplotlib繪制。本文實(shí)例實(shí)現(xiàn)的直方圖就是使用matplotlib繪制而成的。

5爬取www.tianqihoubao,com網(wǎng)站數(shù)據(jù)并分析的技術(shù)實(shí)現(xiàn)

WWW.fianqihoubao網(wǎng)站叫天氣后報(bào)網(wǎng),它提供全國國內(nèi)城市歷史天氣查詢,天氣預(yù)報(bào),國際城市歷史天氣預(yù)報(bào)以及空氣質(zhì)量pr02.5查詢。本實(shí)例就是以爬取本網(wǎng)站提供的北京、上海、武漢在2018年全年的天氣質(zhì)量情況數(shù)據(jù),清理,分析爬取的數(shù)據(jù)最后通過直方圖呈現(xiàn)出來。

5.1北京上海武漢三地天氣數(shù)據(jù)的爬取算法實(shí)現(xiàn)。

筆者定義了二個(gè)方法實(shí)現(xiàn)數(shù)據(jù)的爬取,一個(gè)是get_data(url)。通過傳人url參數(shù)實(shí)現(xiàn)。具體是設(shè)置反爬蟲的headers,讓headers的user-agent鍵值為WWW.tianqihoubao.eom的頁面的us-er-agent值,同時(shí)用requests get的方法去爬取數(shù)據(jù),在getO方法傳遞兩個(gè)參數(shù),一個(gè)是ud,一個(gè)是headers=headers,這樣的目的是對(duì)方服務(wù)器不會(huì)檢測(cè)到是在爬蟲爬數(shù)據(jù),具有反爬蟲的作用。接下來調(diào)用BeautifulSoup工具,借用lxml解析器解析響應(yīng)頁面response.text。利用find(‘table)找到響應(yīng)頁面的表格數(shù)據(jù)。最后利用pandas的read_html方法把數(shù)據(jù)保存下來,同時(shí)去除表格行檢索列。具體Python代碼如下:

另一個(gè)方法是DataSpider()。該方法是為了拼接字符串實(shí)現(xiàn)北京、上海、武漢2018年天氣質(zhì)量數(shù)據(jù)的獲取。get_dataf)實(shí)現(xiàn)過程是,先定義包含“beijing”“shanghai”“wllhan”的列表,定義爬取數(shù)據(jù)的年份變量,接著循環(huán)拼接需要保存天氣質(zhì)量數(shù)據(jù)的文件名,并進(jìn)入第二層循環(huán)。第二層循環(huán)共實(shí)現(xiàn)12次循環(huán),每一次循環(huán)都要拼接一次URL,讓URL包含對(duì)應(yīng)到一個(gè)城市一個(gè)月的準(zhǔn)確網(wǎng)頁地址,同時(shí)調(diào)用get_data0方法實(shí)現(xiàn)網(wǎng)頁數(shù)據(jù)爬取,并把得到每個(gè)月該城市天氣質(zhì)量數(shù)據(jù)就添加到dfs列表中,最后進(jìn)入第三層循環(huán)實(shí)現(xiàn)把爬取的數(shù)據(jù)按城市分類分別保存在指定的文件中。Python代碼如下:

5.2數(shù)據(jù)分析算法實(shí)現(xiàn)

對(duì)獲取天氣質(zhì)量數(shù)據(jù)可以做很多種類處理,比如對(duì)空值數(shù)據(jù)進(jìn)行填充或丟棄,求每月數(shù)據(jù)的平均,取一年中溫度最高的一天,查詢最高PM25的值。下面筆者僅僅實(shí)現(xiàn)三個(gè)地PM25列數(shù)據(jù)做了平均處理來闡述數(shù)據(jù)分析方法。具體流程是調(diào)用pands的read_csv方法通過傳參方式讀取北京上海武漢三地?cái)?shù)據(jù)文件bering-2018-AQI.CSV,shanghai-2018-AQI.csv,wnhan-2018-AQI.csv到指定變量中,并指定數(shù)據(jù)列名讀取,再轉(zhuǎn)換Date列為日期型索引,重采樣并計(jì)算機(jī)每個(gè)月的PM25平均值。關(guān)鍵代碼是:

6結(jié)束語

Python實(shí)現(xiàn)數(shù)據(jù)爬取、數(shù)據(jù)清洗、數(shù)據(jù)分析和數(shù)據(jù)處理可視化輸出非常方便。本實(shí)例技術(shù)實(shí)現(xiàn)比較簡(jiǎn)單,但比較完整地探討了利用Python實(shí)現(xiàn)網(wǎng)站數(shù)據(jù)爬取和數(shù)據(jù)清洗處理輸出的通用過程,具有一定的通用性,希望能為讀者帶來參考和借鑒。

猜你喜歡
數(shù)據(jù)分析
淺析大數(shù)據(jù)時(shí)代對(duì)企業(yè)營銷模式的影響
鄂州市| 隆回县| 柯坪县| 永靖县| 麻城市| 抚顺市| 长阳| 鲁山县| 和政县| 公主岭市| 英吉沙县| 汨罗市| 克拉玛依市| 利辛县| 辉县市| 滨州市| 霍山县| 东乡县| 莆田市| 临颍县| 吉水县| 葫芦岛市| 龙山县| 石台县| 榆中县| 乐昌市| 正定县| 潍坊市| 蛟河市| 东方市| 迭部县| 图们市| 天水市| 泗洪县| 泸州市| 二连浩特市| 铁岭县| 新密市| 牡丹江市| 临江市| 罗城|