版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
目錄
1引言...............................................................................................................................1
1.1項目背景............................................................................................................1
1.2開發(fā)環(huán)境與工具................................................................................................1
1.2.1Python簡介............................................................................................1
1.2.2Jypyternotebook簡介........................................................................2
1.2.3Python第三方庫簡介............................................................................2
2需求分析.......................................................................................................................3
2.1可行性需求分析................................................................................................3
2.2采集目標功能分析............................................................................................4
2.3關(guān)鍵技術(shù)分析....................................................................................................4
2.3.1網(wǎng)絡(luò)爬蟲技術(shù).........................................................................................4
2.3.2文件存取技術(shù).........................................................................................5
2.3.3可視化技術(shù).............................................................................................5
3數(shù)據(jù)采集.......................................................................................................................6
3.1采集頁面分析....................................................................................................6
3.2字段分析............................................................................................................7
3.3編程實現(xiàn)............................................................................................................9
4數(shù)據(jù)清洗與處理.........................................................................................................15
4.1數(shù)據(jù)清洗..........................................................................................................16
4.2數(shù)據(jù)儲存..........................................................................................................17
5數(shù)據(jù)統(tǒng)計與分析.........................................................................................................18
5.1數(shù)據(jù)準備..........................................................................................................18
5.2數(shù)據(jù)展示..........................................................................................................19
5.2.1依據(jù)車輛產(chǎn)商進行統(tǒng)計.......................................................................19
5.2.2依據(jù)車輛級別進行統(tǒng)計.......................................................................20
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
5.2.3依據(jù)車輛價格進行統(tǒng)計和分析...........................................................21
5.2.4依據(jù)月份上牌數(shù)量進行統(tǒng)計...............................................................22
5.3綜述..................................................................................................................23
6小結(jié).............................................................................................................................23
參考資料.........................................................................................................................24
II
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
基于Python的二手車之家數(shù)據(jù)采集與分析
1引言
二手車市場是一個龐大的市場,而且近年來在汽車消費趨勢的影響下,二
手車交易市場得到了顯著的發(fā)展。由于消費者對于二手車交易市場的需求日益
增加,因此二手車交易市場已經(jīng)成為了汽車行業(yè)中的一個新興且非常有潛力的
領(lǐng)域。而數(shù)據(jù)采集與分析又是二手車交易市場中的重要環(huán)節(jié),對于二手車交易
市場的發(fā)展起到至關(guān)重要的作用。與此同時,以python為代表的編程語言由于
它的可靠性和易用性,已經(jīng)得到了廣泛的應(yīng)用。本文將采用python作為主要的
應(yīng)用工具,對二手車之家網(wǎng)站的數(shù)據(jù)采集與分析進行研究和探究,從而推動當
前二手車交易市場的健康發(fā)展。
1.1項目背景
隨著人們生活水平的提高和汽車消費觀念的改變,二手車市場逐漸成為一
個備受關(guān)注的領(lǐng)域。在中國,二手車市場的規(guī)模不斷擴大,由于信息不對稱、
交易風(fēng)險大等問題,二手車市場的發(fā)展仍面臨著一些挑戰(zhàn)。
為了解決這些問題,越來越多的企業(yè)開始涉足二手車市場,推出了各種二
手車交易平臺和服務(wù)。這些平臺通過整合資源、提供專業(yè)的評估、檢測、保養(yǎng)
等服務(wù),為消費者提供更加安全、便捷的二手車交易體驗。同時,政府也加大
了對二手車市場的監(jiān)管力度,出臺了一系列政策和法規(guī),促進了二手車市場的
規(guī)范化和健康發(fā)展。我的畢業(yè)設(shè)計就是基于二手車之家平臺公開的數(shù)據(jù),對其進
行處理、分析,繁雜的數(shù)據(jù)經(jīng)過清洗加分析后然后可視化。
1.2開發(fā)環(huán)境與工具
1.2.1Python簡介
20世紀80年代末,荷蘭的龜叔(GuidoRossum)創(chuàng)造了Python。
Python創(chuàng)建的初期并沒有引起大多數(shù)人們的關(guān)注,在21世紀初Google在
大量的項目業(yè)務(wù)上大規(guī)模的開始應(yīng)用Python,Python也因此走進大眾的視野,
從而促使Python的發(fā)展。
隨著計算機技術(shù)的日新月異,2010年后移動互聯(lián)網(wǎng)的大肆普及。云計算、大
數(shù)據(jù)等信息技術(shù)興起,其中的大數(shù)據(jù)技術(shù)涉及到的數(shù)據(jù)獲取、清洗處理、可視化
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
都有Python的身影存在。云計算中最主要的框架Openstack就是由Python開
發(fā)而來,并且Openstack許多接口都支持Python的調(diào)用,對于平臺實現(xiàn)自動化
極其友好。再到后來人工智能技術(shù)的崛起,AI領(lǐng)域使用了更多的Python技術(shù),用
它作為機器學(xué)習(xí)、關(guān)鍵算法的開發(fā)工具。并且Python入門難度相較于JAVA、C++
等面向?qū)ο蟮恼Z言而言更加簡單容易入門、所以它很快的便走進了大眾的視野
中。
最后,在編程語言排行榜中。Python的排名已經(jīng)與老牌的C語言和JAVA語
言不相上下,它也逐漸走進非IT行業(yè)工作者的視野內(nèi)?,F(xiàn)如今,人們用它開發(fā)簡
單的小腳本用來做文件的自動化處理或者開發(fā)一些小網(wǎng)站打發(fā)無聊時光。這也
突出Python的特點就是易學(xué)、第三方庫足夠豐富、并且免費開源、支持跨多平
臺且可移植性比較強。
1.2.2Jypyternotebook簡介
Jupyternotebook從本質(zhì)上來說是一種應(yīng)用程序,是一種基于瀏覽器的
工具。它將一些解釋性文本、數(shù)學(xué)、計算等結(jié)合起來,放在一個交互式的創(chuàng)作型
文檔中。并且在這個創(chuàng)作型文檔中所有的內(nèi)容都是可分享并可見的。在一些教
學(xué)或者項目的講解中,jupyternotebook或許是一枝獨秀。因為它支持Markdown
標記語言,在瀏覽器界面編輯代碼的同時可以很方便的為代碼提供注釋。在
jypyternotebook執(zhí)行代碼的同時對于注釋性文本并不會執(zhí)行,這個極大的方便
了教學(xué)人員,或者開發(fā)人員講解項目
Jupyternotebook在大數(shù)據(jù)方面應(yīng)用比較廣泛,特別適合用來做數(shù)據(jù)的
清洗和處理,在數(shù)據(jù)挖掘和可視化上的應(yīng)用也是十分方便的。對于比較高層次的
開發(fā)人員來說,這個工具也可以用來做深度的機器學(xué)習(xí)。
對于初學(xué)者來說安裝Jupyternotebook的方法就是安裝Anaconda,因為
Anaconda的版本中就是自帶Jupyternotebook。如果覺得不需要Anaconda,可
以自主選擇進入官網(wǎng)下載安裝包。
1.2.3Python第三方庫簡介
requests:最友好的網(wǎng)絡(luò)爬蟲功能庫,是Python實現(xiàn)的簡單易用的HTTP庫,
使用起來比urllib更簡潔很多,Python第三方庫在使用前要先進行安裝。
Re:正則表達式解析和處理功能庫,里面包含了多種字符串匹配的方法。
Pprint:他的英文全稱為Dataprettyprinter他采用分行打印的方式輸出
數(shù)據(jù)結(jié)果。讓一些冗長復(fù)雜結(jié)構(gòu)的數(shù)據(jù)輸出更加漂亮好看,讓開發(fā)人員一目了然。
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
Csv:csv屬于python中的內(nèi)置模塊,它能夠讀取csv格式的文件或者將數(shù)
據(jù)存入到csv表格中。并且csv文件是表格和數(shù)據(jù)庫中常見的文件操作格式。
NumPy庫是Python數(shù)據(jù)分析的基礎(chǔ),是處理數(shù)組的Python庫,NumPy庫的
數(shù)據(jù)結(jié)構(gòu)比Python自帶的更加高效。
pandas:數(shù)據(jù)分析并保存為csv文件,python數(shù)據(jù)分析高層次應(yīng)用庫,還可
以進行數(shù)據(jù)清洗。
matplotlib:繪圖庫,主要是偏向于二維繪圖包括折線圖、條形圖、扇形圖、
散點圖、直方圖等等。
wordcloud、scipy、jieba:生成中文詞云的。
pylab:它能設(shè)置畫圖讓其能顯示中文。
2需求分析
2.1可行性需求分析
1、技術(shù)可行性
Python是面向?qū)ο笳Z言中的一門通俗易懂的計算機編程語言,本次項目中
使用Python編寫程序來實現(xiàn)數(shù)據(jù)獲取,數(shù)據(jù)清洗預(yù)處理,數(shù)據(jù)可視化。在數(shù)據(jù)獲
取的過程中遇到一些小問題。隨后通過抓包分析發(fā)現(xiàn)國家藥監(jiān)局網(wǎng)站藥品信息
頁面的數(shù)據(jù)是動態(tài)傳輸?shù)?所以我們通過瀏覽器控制臺獲取請求和其參數(shù)。然后
就可以得到網(wǎng)頁面數(shù)據(jù)的返回值。隨后將爬取出來的原始數(shù)據(jù)暫時以csv格式
儲存起來,在后續(xù)的數(shù)據(jù)預(yù)處理和可視化中再進行調(diào)用。最后我們會將準確的數(shù)
據(jù)存入MySQL數(shù)據(jù)庫中做持久化儲存。
以上為此次項目的技術(shù)可行性,我也將在后續(xù)的工作中將所有的步驟實現(xiàn)
到位,保證數(shù)據(jù)的準確性和安全性。
2、項目可行性
二手車網(wǎng)站所展示的信息更多,涵蓋了車輛品牌、車型、售價等多個方面,
數(shù)據(jù)可利用性較高。由于二手車交易網(wǎng)站較為復(fù)雜,數(shù)據(jù)爬取難度較大,需要
建立一套完整的數(shù)據(jù)獲取流程,同時還需進行分析和處理。需要考慮數(shù)據(jù)清洗
和去重,以確保結(jié)果的準確性。
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
2.2采集目標功能分析
本次項目的數(shù)據(jù)集的來源是二手車之家,是通過python爬取湖南省所有城
市的二手車信息。數(shù)據(jù)清洗后共3764條記錄,爬取完成后盡可能的檢查數(shù)據(jù)的
準確性,確定爬取出來的數(shù)據(jù)無誤。數(shù)據(jù)采集在整個數(shù)據(jù)分析流程中占據(jù)了至關(guān)
重要的地位。為了將二手車市場中的所有信息納入分析,需要對市場上各種二
手車信息進行系統(tǒng)的采集。而對于二手車市場的數(shù)據(jù),通過爬取二手車之家網(wǎng)
站可以獲取大量的信息。網(wǎng)絡(luò)爬蟲是一種數(shù)據(jù)獲取的技術(shù),可以通過模擬瀏覽
器行為,實現(xiàn)自動化訪問網(wǎng)站,并獲取網(wǎng)站上的內(nèi)容和數(shù)據(jù)。在爬蟲實現(xiàn)中,
首先需要對二手車之家網(wǎng)站的數(shù)據(jù)結(jié)構(gòu)進行分析,然后編寫爬蟲代碼來模擬用
戶行為,實現(xiàn)數(shù)據(jù)的抓取。此外,在實現(xiàn)過程中,需要考慮網(wǎng)站的反爬蟲機制
以及模擬登錄的實現(xiàn)等問題。
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲技術(shù)
Python是一種十分流行的網(wǎng)絡(luò)爬蟲開發(fā)語言,常用的Python網(wǎng)絡(luò)爬蟲技術(shù)
包括:
1.Requests:一個專門用來處理HTTP請求的Python庫,可用于發(fā)送HTTP
請求及處理相應(yīng)結(jié)果。常用于下層爬蟲框架的封裝中。
2.Scrapy:一個快速高效的爬蟲框架,使用Python語言編寫,支持自動化
網(wǎng)站爬行、數(shù)據(jù)抽取等功能,是一種速度快、易用性好的爬蟲框架。
3.BeautifulSoup:一個基于Python的HTML/XML解析庫,能夠?qū)TML頁
面轉(zhuǎn)化為Python可操作的數(shù)據(jù)結(jié)構(gòu),支持解析HTML標簽及CSS選擇器。
4.Selenium:一個可以通過代碼控制瀏覽器操作的自動化測試工具,能夠
解決一些比較復(fù)雜的爬蟲工作,例如模擬用戶登錄、爬取JavaScript渲染后的
網(wǎng)頁等。
5.PyQuery:基于jQuery語法的Python庫,支持解析HTML文檔、選擇HTML
中的元素、讀取和修改HTML文檔等。
6.PySpider:一個強大的開源網(wǎng)絡(luò)爬蟲系統(tǒng),具有強大、易用的web界面,
支持分布式爬蟲、源碼閱讀等功能。
這些技術(shù)都是Python下常用的網(wǎng)絡(luò)爬蟲技術(shù),通過將它們組合使用,可以
實現(xiàn)多種不同類型的網(wǎng)絡(luò)爬蟲任務(wù)。使用Python進行網(wǎng)絡(luò)爬蟲開發(fā)具有高效、
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
易用、靈活等特點,是一種十分流行的開發(fā)方式。。
2.3.2文件存取技術(shù)
文件存儲技術(shù)指的是將數(shù)據(jù)存儲在物理設(shè)備中,文件存取技術(shù)指的是如何
讀取和處理存儲在物理設(shè)備中的文件數(shù)據(jù),文本文件存取技術(shù):可對文本文件
進行讀取、寫入、復(fù)制和粘貼等操作,能夠識別并處理文本編碼格式。
二進制文件存取技術(shù):可對二進制文件進行讀取、寫入、復(fù)制和粘貼等操
作,允許以十六進制或二進制形式查看文件內(nèi)容,但無法直接顯示文本信息。
二進制文件存取技術(shù):可對二進制文件進行讀取、寫入、復(fù)制和粘貼等操作,
允許以十六進制或二進制形式查看文件內(nèi)容,但無法直接顯示文本信息。
數(shù)據(jù)庫文件存取技術(shù):將數(shù)據(jù)結(jié)構(gòu)化存儲在磁盤上,并提供了查詢、更新
和刪除等數(shù)據(jù)庫操作界面,用于有效地管理大量數(shù)據(jù)。
2.3.3可視化技術(shù)
可視化技術(shù)指的是通過圖形化方式展示數(shù)據(jù),將抽象的數(shù)據(jù)轉(zhuǎn)換成易于理
解和解釋的形式,幫助用戶更直觀的了解數(shù)據(jù),從而更好的發(fā)現(xiàn)數(shù)據(jù)中的規(guī)律
和趨勢,進一步促進數(shù)據(jù)分析和決策。在現(xiàn)實生活中,可視化技術(shù)廣泛應(yīng)用于
商業(yè)、政務(wù)、科研、教育等領(lǐng)域Python提供了多種可視化技術(shù)的工具和庫,常
用的包括:
Matplotlib:是Python的主流可視化工具,支持生成各種類型的圖表,如
折線圖、散點圖、直方圖、條形圖、餅圖等,可用于探索性數(shù)據(jù)分析和呈現(xiàn)分
析結(jié)果。
Seaborn:是基于Matplotlib的高級數(shù)據(jù)可視化庫,提供了更多的可視化
類型和樣式,適用于快速可視化數(shù)據(jù)。
Plotly:提供了交互性更強的圖形可視化,支持生成多種類型的圖表,如
折線圖、散點圖、直方圖、氣泡圖、3D圖、小提琴圖等。
Bokeh:是一個交互式可視化工具,支持生成各種類型的圖表,如折線圖、
散點圖、直方圖、樹狀圖等,適用于大規(guī)模、高維度或?qū)崟r數(shù)據(jù)的可視化。
Pandas:是Python主要的數(shù)據(jù)處理包,支持生成各種類型的可視化圖表,
同時還提供了多種常用統(tǒng)計圖形。
Ggplot:是R語言中著名的ggplot2可視化系統(tǒng)的Python實現(xiàn),支持生成
各種類型的圖表,如散點圖、直方圖、箱線圖等。
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
這些庫都有自己的特點和使用場景,根據(jù)不同的需要選擇不同的庫來進行
數(shù)據(jù)可視化處理。
3數(shù)據(jù)采集
3.1采集頁面分析
我們首先通過瀏覽器搜索二手車之家的官方網(wǎng)頁,然后點擊全國,找到湖南
省觀察圖3-1,其中URL為:
/hunan/a0_0msdgscncgpi1ltocsp1exx0/?pvareaid=1
02179;然后點擊頁面下方的下一頁按鈕,同時觀察URL,發(fā)現(xiàn)URL中
a0_0msdgscncgpi1ltocsp1exx0變?yōu)閍0_0msdgscncgpi1ltocsp2exx0。如圖3-2
圖3-1數(shù)據(jù)網(wǎng)址頁面
按F12調(diào)出開發(fā)者工具,刷新頁面,如圖2-4。
圖3-2頁碼測試
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
利用全局搜索工具定位所需數(shù)據(jù)位置,點擊開發(fā)者工具上面的Headers字
段,分析這是個什么請求,發(fā)現(xiàn)這個是一個get請求如圖3-3,那我們需要尋找它
的的Fromdata往下翻找,在最后找到了表單數(shù)據(jù)FormData,如圖3-4。
圖3-3開發(fā)者工具
圖3-4Cookie,User-Agent
3.2字段分析
我們打開網(wǎng)頁按F12打開開發(fā)者工具,使用元素面板可以快速審查HTML元
素的代碼及其相關(guān)屬性,你可以通過點擊元素面板中的元素來選中網(wǎng)頁上的相
應(yīng)元素。如圖3-5我們可以發(fā)現(xiàn)a元素中有一個網(wǎng)址點擊它可以進入車輛的詳
細頁面。如圖3-6查看網(wǎng)頁元素可以發(fā)現(xiàn)我們可以用XPath選擇器語言從HTML
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
頁面中提取指定元素的文本內(nèi)容,匹配所有帶有class屬性為price的<span>
元素,并使用//text()方法獲取它們的文本內(nèi)容,包括子元素的文本內(nèi)容。
如圖3-7我們可以contains()函數(shù)通過匹配指定汽車參數(shù)文本的<span>元
素,然后通過../選擇器返回到上一個父元素,從而找到包含車身顏色的文本在
同一級別下的元素。最后,通過text()方法提取該元素中包含的文本內(nèi)容。
圖3-5分析數(shù)據(jù)類型頁面
圖3-6汽車價格字段
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
圖3-7汽車參數(shù)字段
3.3編程實現(xiàn)
導(dǎo)入所需庫,如圖3-8
圖3-8導(dǎo)入所需庫頁面
設(shè)置請求頭,偽裝成瀏覽器訪問服務(wù)器。如圖3-9
圖3-9請求頭內(nèi)容頁面
代碼實現(xiàn)如下:
importjson,random,requests
importscrapy
fromlxmlimportetree
importpandasaspd
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
from..confimport*
classSpider(scrapy.Spider):
name='ershouchezhijia_new'
headers={
'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)
AppleWebKit/537.36(KHTML,likeGecko)Chrome/99.0.4844.74Safari/537.36',
'Referer':
'/china/a0_0msdgscncgpi1ltocsp94exf4-3x0/?pvareaid=10
2179',
}
defstart_requests(self):
df1=pd.read_csv(r'car_list.csv')
try:
df2=pd.read_csv(r'result.csv')
df2=json.loads(df2.to_json(orient='records'))
user_new=[]
foriindf2:
user_new.append(i['url'])
except:
user_new=[]
#df1=df1.drop_duplicates(subset='specid',keep='first')
df1=json.loads(df1.to_json(orient='records'))
forid1indf1:
id1['url']
='/dealer/1/{}.html'.format(id1['biz_id'])
ifid1['url']inuser_new:
print('222222222')
continue
url2=
'/CarProduct/GetParam.ashx?specid={}'.format(i
d1['specid'])
print(33333)
yieldscrapy.Request(
url=url2,
callback=self.parse_info,
dont_filter=True,
meta={'buzz':id1}
)
defparse_info(self,response):
if'請求參數(shù)格式錯誤'inresponse.text:
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
return
buzz=response.meta['buzz']
try:
data=json.loads(response.text)
except:
return
item1={}
item1['url']=buzz['url']
#item1['img']=buzz['img']
item1['specid']=buzz['specid']
type_List=['車型名稱','廠商指導(dǎo)價(元)','廠商','級別','能源類型
','上市時間','純電續(xù)航里程(km)','快充時間(小時)','慢充時間(小時)','快充
電量百分比','最大功率(kW)',"最大扭矩(N?m)",'電動機(Ps)','長*寬*高(mm)','
車身結(jié)構(gòu)','最高車速(km/h)','官方0-100km/h加速(s)','實測0-100km/h加速
(s)','實測100-0km/h制動(m)','實測續(xù)航里程(km)','實測快充時間(小時)','實
測慢充時間(小時)','最低荷電狀態(tài)油耗(L/100km)','整車質(zhì)保']
fortype2intype_List:
item1[type2]='-'
type_list2=['長度(mm)','寬度(mm)','高度(mm)','軸距(mm)','前輪距(mm)','
后輪距(mm)','最小離地間隙(mm)','車身結(jié)構(gòu)','車門數(shù)(個)','座位數(shù)(個)','油箱容
積(L)','氣罐容積(L)','行李廂容積(L)','整備質(zhì)量(kg)']
fortype3intype_list2:
item1[type3]='-'
type_list3=['電機類型','電動機總功率(kW)','電動機總扭矩(N?m)','
前電動機最大功率(kW)','前電動機最大扭矩(N?m)','后電動機最大功率(kW)','后電
動機最大扭矩(N?m)','系統(tǒng)綜合功率(kW)','系統(tǒng)綜合扭矩(N?m)','驅(qū)動電機數(shù)','
電機布局','電池類型','NEDC純電續(xù)航里程(km)','WLTP純電續(xù)航里程(km)','CLTC
純電續(xù)航里程(km)','EPA純電續(xù)航里程(km)','電池能量(kWh)','百公里耗電量
(kWh/100km)','電池組質(zhì)保','快充時間(小時)','慢充時間(小時)','快充電量(%)']
fortype3intype_list3:
item1[type3]='-'
type_list4=['擋位個數(shù)','變速箱類型','簡稱']
fortype3intype_list4:
item1[type3]='-'
type_list5=['驅(qū)動方式','前懸架類型','后懸架類型','助力類型','車體
結(jié)構(gòu)']
fortype3intype_list5:
item1[type3]='-'
type_list6=['前制動器類型','后制動器類型','駐車制動類型','前輪胎
規(guī)格','后輪胎規(guī)格','備胎規(guī)格']
fortype3intype_list6:
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
item1[type3]='-'
fornameindata['result']['paramtypeitems']:
ifname['name']=='基本參數(shù)':
type_new_list=type_List
elifname['name']=='車身':
type_new_list=type_list2
elifname['name']=='電動機':
type_new_list=type_list3
elifname['name']=='變速箱':
type_new_list=type_list4
elifname['name']=='底盤轉(zhuǎn)向':
type_new_list=type_list5
elifname['name']=='車輪制動':
type_new_list=type_list6
fortype1inname['paramitems']:
iftype1['name']intype_new_list:
item1[type1['name']]=type1['value']
yieldscrapy.Request(
url=buzz['url'],
callback=self.parse_info_two,
dont_filter=True,
meta={'item1':item1}
)
defparse_info_two(self,response):
item1=response.meta['item1']
tree=etree.HTML(response.text)
title=tree.xpath('//h3/text()')
title=str_replace(title)
info=tree.xpath('//ul[@class="brand-unit-itemfn-clear"]//text()')
try:
item1['標題']=title
#if'瀏覽了該車的用戶還看了'initem1
ifitem1['標題']=='瀏覽了該車的用戶還看了:':
return
item1['表顯里程']=info[4]
item1['上牌時間']=info[10]
item1['擋位/排量']=info[16]
item1['車輛所在地']=info[22]
price=tree.xpath('//span[@class="price"]//text()')
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
price=str_replace(price).split('萬')[0]
item1['價格']=price
exceptExceptionase:
print(e,item1)
return
#price2=tree.xpath('//s[@id="newprice"]/text()')
#price2=str_replace(price2)
#item['新車含稅價']=price2.replace('新車含稅價:','')
img=tree.xpath(
'//div[@class="swiper-slideswiper-slide-visible
swiper-slide-activeswiper-slide-thumb-active"]/img/@src')
ifimg:
if'http'notinimg:
img='http:'+img
time1=tree.xpath('//span[contains(text(),"發(fā)布時間")]/../text()')
time1=str_replace(time1)
item1['發(fā)布時間']=time1
#item['圖片']=img
guohu=tree.xpath('//span[contains(text(),"過戶次數(shù)")]/../text()')
guohu=str_replace(guohu)
item1['過戶次數(shù)']=guohu.replace('次(以車輛登記證為準)','')
item1['車身顏色']=str_replace(tree.xpath('//span[contains(text(),"
車身顏色")]/../text()'))
item1['變速箱']=
is_null(tree.xpath('//ul[@class="basic-item-ul"]/li[3]/text()'))
item1['排放標準']=str_replace(tree.xpath('//span[contains(text(),"
排放標準")]/../text()'))
item1['排量']=
is_null(tree.xpath('//ul[@class="basic-item-ul"]/li[5]/text()'))
item1['年檢到期']=str_replace(tree.xpath('//span[contains(text(),"
年檢到期")]/../text()'))
item1['保險到期']=str_replace(tree.xpath('//span[contains(text(),"
保險到期")]/../text()'))
item1['質(zhì)保到期']=str_replace(tree.xpath('//span[contains(text(),"
質(zhì)保到期")]/../text()'))
item1['發(fā)動機']=str_replace(tree.xpath('//span[contains(text(),"
發(fā)動機")]/../text()'))
item1['車輛級別']=str_replace(tree.xpath('//span[contains(text(),"
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
車輛級別")]/../text()'))
item1['燃油標號']=str_replace(tree.xpath('//span[contains(text(),"
燃油標號")]/../text()'))
item1['驅(qū)動方式']=str_replace(tree.xpath('//span[contains(text(),"
驅(qū)動方式")]/../text()'))
url3=
'/api/carinfo/specprc?specid={}'.format(item
1['specid'])
yieldscrapy.Request(
url=url3,
callback=self.get_comment,
meta={'item1':item1}
)
defget_comment(self,response):
item1=response.meta['item1']
data=json.loads(response.text)
try:
comment_list=[]
forcommentindata['result']['DimModelPRCTypes'][0]['Summary']:
comment_list.append(str(comment['Combination']))
try:
item1['綜合評價']=','.join(comment_list)
except:
item1['綜合評價']=''
except:
item1['綜合評價']=''
url4=
'/api/NewCarPriceInTax.ashx?_appid=2sc&pid=0&sp
ecid={}&cid={}'.format(item1['specid'],item1['url'].split('/')[-1].replace(
'.html',''))
yieldscrapy.Request(
url=url4,
callback=self.get_price,
meta={'item1':item1}
)
defget_price(self,response):
item1=response.meta['item1']
data=json.loads(response.text)
try:
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
item1['原價']=data['result']['newcarprice']
except:
item1['原價']=''
yielditem1
4數(shù)據(jù)清洗與處理
在數(shù)據(jù)分析的過程中,數(shù)據(jù)質(zhì)量決定了分析結(jié)果的準確性和可靠性。因此,
數(shù)據(jù)清洗和處理是十分關(guān)鍵的環(huán)節(jié)。Python提供了豐富的數(shù)據(jù)清洗和處理庫,
包括Pandas、NumPy等。這些工具可以幫助我們對數(shù)據(jù)進行快速、高效的處理
和清洗。
在數(shù)據(jù)處理過程中,經(jīng)常會遇到缺失值的情況。缺失值可能會影響數(shù)據(jù)分
析結(jié)果的準確性。因此,需要對缺失值進行處理。重復(fù)值是指出現(xiàn)多次的具有
相同特征的數(shù)據(jù),它們可能會影響數(shù)據(jù)分析的準確性。可以使用Pandas庫的
duplicated()函數(shù)來判斷是否存在重復(fù)值,并使用drop_duplicates()函數(shù)將重
復(fù)值進行刪除。
總之,數(shù)據(jù)清洗和處理對于數(shù)據(jù)分析的準確性和可靠性至關(guān)重要。在Python
中,可以使用豐富的數(shù)據(jù)處理和清洗庫來實現(xiàn)數(shù)據(jù)清洗和處理的任務(wù)。需要根
據(jù)具體的數(shù)據(jù)情況和分析需求,選擇適當?shù)姆椒ê图夹g(shù),對數(shù)據(jù)進行全面、準
確的處理和清洗。
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
4.1數(shù)據(jù)清洗
圖4-1數(shù)據(jù)清洗準備頁面
經(jīng)過比對和檢查,發(fā)現(xiàn)數(shù)據(jù)存在缺失,還有空值,那么我們根據(jù)需求將有效
數(shù)據(jù)統(tǒng)一規(guī)劃去掉不要的行列數(shù)據(jù),防止數(shù)據(jù)冗余。因此我們只需保留需要的數(shù)
據(jù),然后整理為原網(wǎng)頁格式存入cleaned_car.csv文件中,留存后續(xù)作為統(tǒng)計分
析、可視化使用。
圖4-2數(shù)據(jù)篩選界面
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
圖4-3清洗空值
圖4-4數(shù)據(jù)清洗完成界面
4.2數(shù)據(jù)儲存
數(shù)據(jù)儲存得方法有很多種,常見得可以直接用記事本格式儲存(txt),或
者直接用其他文件的形式儲存csv、excel、json等,但是以上方法保存的數(shù)據(jù)
體量普遍都比較小。如果需要儲存較大的數(shù)據(jù)信息就需要用到我們的數(shù)據(jù)庫,數(shù)
據(jù)庫也分為關(guān)系型和非關(guān)系型數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫比較典型的有MySQL和
Oracle等,非關(guān)系型數(shù)據(jù)庫等以鍵值對形式儲存數(shù)據(jù)的代表有Mongodb、Redis
等。本次項目我們用到的是csv。
如圖4-5所示:
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
圖4-5數(shù)據(jù)存儲為csv頁面
5數(shù)據(jù)統(tǒng)計與分析
5.1數(shù)據(jù)準備
導(dǎo)入相關(guān)庫,使用pandas加載源數(shù)據(jù),如圖5-1,5-2。
圖5-1數(shù)據(jù)準備頁面
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
圖5-2數(shù)據(jù)加載頁面
5.2數(shù)據(jù)展示
5.2.1依據(jù)車輛產(chǎn)商進行統(tǒng)計
圖5-3數(shù)據(jù)展示頁面
從圖5-3中將可以看出當前二手車市場上在售的品牌主要集中在進口車、
豪華車和合資車這些品牌上,具體情況如下:
豪華車,進口車:華晨寶馬、北京奔馳、一汽奧迪、保時捷、路虎(進口)、
奧迪(進口)、雷克薩斯、比亞迪等豪華車品牌,由于豪車和進口車,品牌知名
度高技術(shù)和品質(zhì)水平高價格昂貴,對于消費者的經(jīng)濟能力要求比較高,所以在
二手車網(wǎng)站上在售的車輛數(shù)量多,例如,華晨寶馬在售為362輛。這說明豪華
車,進口車銷量不是特別高。
19
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
合資車:上汽通用凱迪拉克、上汽大眾、上汽通用別克、廣汽本田、東風(fēng)
日產(chǎn)、廣汽豐田、東風(fēng)本田、吉利汽車、一汽豐田、上汽通用雪佛蘭等國外知
名汽車品牌與國內(nèi)知名汽車企業(yè)聯(lián)合生產(chǎn)的車型,合資車企業(yè)的生產(chǎn)和銷售集
成了國內(nèi)工人的廉價勞動力和國外企業(yè)成熟的管理模式,從而減少了制造成本
和銷售成本,能夠提供具有價格競爭力的高質(zhì)量車輛。例如保價性、品質(zhì)和配
置等。例如,上汽通用凱迪拉克年在售為156輛。這說明合資車價格相對于豪
華進口車更為親民,而且性能、配置和品質(zhì)等方面也非常出色,更具有性價比。
自主車:長城汽車、長安汽車、長安福特、廣汽乘用車、MINI、長安馬自
達都是以汽車生產(chǎn)、銷售和研發(fā)為主營業(yè)務(wù)的國內(nèi)汽車品牌。自主車企業(yè)通常
擁有自主研發(fā)的技術(shù)和產(chǎn)品,可以更快地推出新產(chǎn)品,更好地滿足不斷變化的
市場需求。價格優(yōu)勢。自主車企業(yè)生產(chǎn)成本相對較低,可以通過價格優(yōu)勢贏得
市場。自主車在價格上更加的親民在二手車網(wǎng)站上的在售車輛一般都在50輛左
右,這可以說明低價格車輛可能有著更優(yōu)秀的性價比,從而吸引消費者的關(guān)注。
5.2.2依據(jù)車輛級別進行統(tǒng)計
圖5-4數(shù)據(jù)展示頁面
從圖5-4中可以看在二手車網(wǎng)站上出售的車型數(shù)量對比,中型車、緊湊型
車、中大型車、中型SUV和緊湊型SUV等常規(guī)車型的需求相對較高,它們的銷
量表現(xiàn)也相對較好。另外,大型車、小型車、跑車、中大型MPV等車型的銷量
相對較低,可能是由于其市場定位不夠明確或者面對的競爭較為激烈等原因。
對于微型車、緊湊型MPV、輕客、皮卡和微面等車型,銷量也比較低,這說明這
些車型的市場份額相對較小。
20
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計
緊湊型車是一種兼顧經(jīng)濟性、操控性和實用性的汽車類型,尤其適合在城
市中進行代步和日常行駛
中型車在車身尺寸、內(nèi)部空間、油耗表現(xiàn)、配置和性價比等方面均處于中
等水平,將舒適性和油耗性能相對平衡,可以說是一種較為全面的車型,符合
大多數(shù)消費者所需的基本駕駛性能和舒適體驗,因此在市場中有較高的競爭力。
緊湊型車和中型車占據(jù)汽車市場超過一半的比例,那么這可能意味著消費
者更傾向于購買較小型號的汽車,或者他們更注重燃油經(jīng)濟性和實用性,因為
較小型號的汽車通常比大型車更為環(huán)保和節(jié)能。
5.2.3依據(jù)車輛價格進行統(tǒng)計和分析
圖5-5數(shù)據(jù)展示頁面
從圖5-5中這個數(shù)據(jù)集描述了一個汽車銷售平臺的銷售數(shù)據(jù)??梢钥闯?,
銷售的汽車價格主要分布在10萬以下和20萬以下的價格區(qū)間內(nèi)(共計2063
輛),約占銷售總量的70%。此外,也可以看到銷售較高檔次的汽車(價格在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年成都貨運從業(yè)資格證模擬
- 2025年貴陽駕??荚囏涍\從業(yè)資格證考試
- 養(yǎng)豬場建筑消防工程協(xié)議
- 家政服務(wù)員三級練習(xí)題+參考答案
- 烹飪原料知識考試模擬題(含答案)
- 二級建造師執(zhí)業(yè)合同(2篇)
- 二年級數(shù)學(xué)(上)計算題專項練習(xí)匯編
- 四年級數(shù)學(xué)(上)計算題專項練習(xí)及答案
- 子公司售后服務(wù)策略
- 文化設(shè)施建設(shè)備案申請書
- 2024年安徽安慶宜秀區(qū)國企業(yè)招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 替莫唑胺在小細胞肺癌中的應(yīng)用
- 不動產(chǎn)登記申請表
- 2024年中國中鐵十局招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 第一、二單元語文園地鞏固練習(xí)-2024-2025學(xué)年語文六年級上冊統(tǒng)編版
- 2024年P(guān)URL系列反應(yīng)型皮革用聚氨酯乳液項目合作計劃書
- 巨量-營銷科學(xué)(初級)認證培訓(xùn)考試題庫(含答案)
- 2024-2030年中國城市更新行業(yè)市場深度分析及前景趨勢與投資戰(zhàn)略研究報告
- GB/T 44328-2024七氟異丁腈
- 生態(tài)環(huán)境保護課件
- 戶外徒步活動策劃方案(共5篇)
評論
0/150
提交評論