版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
目錄
1引言............................................................................................................................1
1.1項(xiàng)目背景......................................................................................................1
1.2開發(fā)環(huán)境與工具..........................................................................................2
1.2.1Python簡(jiǎn)介..........................................................................................2
1.2.2MySQL簡(jiǎn)介............................................................................................2
1.2.3Jypyternotebook簡(jiǎn)介......................................................................2
2需求分析.....................................................................................錯(cuò)誤!未定義書簽。
2.1可行性需求分析..........................................................................................3
2.2采集目標(biāo)功能分析......................................................................................3
2.3關(guān)鍵技術(shù)分析..............................................................................................3
2.3.1網(wǎng)絡(luò)爬蟲技術(shù).......................................................................................3
2.3.2文件存取技術(shù).......................................................................................3
2.3.3可視化技術(shù)...........................................................................................3
3數(shù)據(jù)采集....................................................................................................................3
3.1采集頁(yè)面分析..............................................................................................6
3.2字段分析......................................................................................................8
3.3編程實(shí)現(xiàn)......................................................................................................9
4數(shù)據(jù)清洗與處理......................................................................................................13
4.1數(shù)據(jù)清洗....................................................................................................13
4.2數(shù)據(jù)儲(chǔ)存....................................................................................................14
4.3編程實(shí)現(xiàn)....................................................................................................15
5數(shù)據(jù)統(tǒng)計(jì)與分析......................................................................................................16
5.1數(shù)據(jù)準(zhǔn)備....................................................................................................16
5.2數(shù)據(jù)展示....................................................................................................18
5.2.1依據(jù)車輛品牌進(jìn)行統(tǒng)計(jì).....................................................................18
5.2.2依據(jù)車輛公里數(shù)進(jìn)行統(tǒng)計(jì).................................................................19
5.2.3據(jù)車輛排期以及進(jìn)氣方式進(jìn)行統(tǒng)計(jì)和分析.....................................19
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.4依據(jù)車輛顏色進(jìn)行統(tǒng)計(jì).....................................................................20
5.3綜述............................................................................................................21
6小結(jié)..........................................................................................................................21
參考資料.........................................................................................................................22
II
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
基于Python的瓜子二手車網(wǎng)數(shù)據(jù)采集與分析
1引言
時(shí)光荏苒,1980年開始一直到2000年,我國(guó)的汽車發(fā)展呈現(xiàn)的是跨越式的,
我國(guó)的汽車產(chǎn)量已經(jīng)達(dá)到了一百萬(wàn)臺(tái),在2000年突破了兩百萬(wàn)臺(tái),并且我國(guó)的
民用乘車量從八零年的五千四百臺(tái)發(fā)展到了零零年的六十一萬(wàn)臺(tái),由這些數(shù)字
的佐證,很難不看出這是一段我國(guó)汽車時(shí)代的跨越式發(fā)展,就像人們常常說(shuō)的,
歷史是無(wú)法抵擋的,有波折,有倒退,但從歷史性的角度來(lái)看,我國(guó)的汽車發(fā)
展是在大步向前的。
近二十年我國(guó)的汽車發(fā)展更是來(lái)到了一個(gè)巔峰,不僅在以前我國(guó)的汽車只
能依靠進(jìn)口,但在2000年之后我們國(guó)家開始有了合資品牌,顧名思義合資車就
是外國(guó)品牌給我們國(guó)家的汽車廠家提供技術(shù)而由我國(guó)的汽車廠家制造車輛,甚
至我國(guó)還誕生出了自己國(guó)家的汽車品牌,比如比亞迪,紅旗,吉利等等響當(dāng)當(dāng)
的汽車品牌。
根據(jù)公安部來(lái)布最新的據(jù),截至2022年11月,我們?nèi)珖?guó)的機(jī)動(dòng)車保有量
為四點(diǎn)一五億臺(tái),其中汽車的保有量達(dá)到了驚人的三點(diǎn)一八億臺(tái),從這些數(shù)據(jù)
中我們便可以看出我們國(guó)家的二手車市場(chǎng)也是非常之巨大的。特別是到現(xiàn)在我
們都是比較喜新厭舊的,所以很多人都會(huì)把自己的車輛變賣來(lái)?yè)Q成其他的車,
這也就誕生了二手車市場(chǎng)。
1.1項(xiàng)目背景
二手車市場(chǎng)是一個(gè)龐大而且不斷增長(zhǎng)的市場(chǎng),在這個(gè)市場(chǎng)中,人們可以以
比新車更便宜的價(jià)格購(gòu)買汽車,并在之后將它們?cè)俅无D(zhuǎn)手賣掉。因此,二手車
交易也是一個(gè)非常大的市場(chǎng),為人們提供了一種更便宜、更實(shí)用的購(gòu)車方式。
然而,二手車市場(chǎng)存在一些問(wèn)題,例如質(zhì)量不一、價(jià)格不透明、交易安全等。
因此,針對(duì)這些問(wèn)題,許多企業(yè)開始探索使用技術(shù)手段來(lái)解決這些問(wèn)題,因此
我們可以使用大數(shù)據(jù)信息技術(shù)對(duì)車輛進(jìn)行一個(gè)全面的分析。
大數(shù)據(jù)技術(shù)可以通過(guò)分析和處理海量的數(shù)據(jù),在二手車買賣過(guò)程中提供更
好的解決方案,例如幫助消費(fèi)者評(píng)估汽車的質(zhì)量、為汽車定價(jià)、提供更安全和
可靠的交易平臺(tái)等。因此,二手車交易的大數(shù)據(jù)分析解決方案正逐漸成為一個(gè)
備受關(guān)注的領(lǐng)域。
但是,與新車市場(chǎng)相比,二手車市場(chǎng)存在一些問(wèn)題。例如,二手車的質(zhì)量
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
和狀態(tài)存在著較大的不確定性,消費(fèi)者難以準(zhǔn)確評(píng)估其實(shí)際價(jià)值;價(jià)格和交易
過(guò)程缺乏透明度,買家可能會(huì)陷入價(jià)格陷阱或遭受欺詐。針對(duì)這些問(wèn)題,一些
企業(yè)開始探索運(yùn)用大數(shù)據(jù)技術(shù),通過(guò)分析海量數(shù)據(jù)和應(yīng)用智能算法,為消費(fèi)者
提供更準(zhǔn)確、透明和安全的二手車購(gòu)車體驗(yàn)。
1.2開發(fā)環(huán)境與工具
1.2.1Python簡(jiǎn)介
Python是一種高層次、解釋型的動(dòng)態(tài)編程語(yǔ)言,被廣泛用于機(jī)器學(xué)習(xí)、人
工智能、數(shù)據(jù)處理、Web開發(fā)、科學(xué)計(jì)算、網(wǎng)絡(luò)爬蟲等領(lǐng)域。它的哲學(xué)是代碼可
讀性和簡(jiǎn)潔性,語(yǔ)法簡(jiǎn)單明了,易于學(xué)習(xí)和使用。
Python的主要特點(diǎn)有:
簡(jiǎn)單易學(xué):Python語(yǔ)法簡(jiǎn)單明了,支持面向?qū)ο缶幊?、函?shù)式編程和過(guò)程
編程。
跨平臺(tái):Python可以在類Unix、Linux、Windows等幾乎所有操作系統(tǒng)上運(yùn)
行,具有很強(qiáng)的可移植性。
Python有豐富的第三方庫(kù)和工具,包括NumPy、SciPy、Pandas、Matplotlib
等用于數(shù)據(jù)分析和科學(xué)計(jì)算的庫(kù),Django、Flask等用于Web開發(fā)的框架,以及
機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的庫(kù)如TensorFlow、PyTorch等。
擴(kuò)展性強(qiáng):Python可以使用C、C++等編寫擴(kuò)展模塊,也可以被其他語(yǔ)言作
為擴(kuò)展模塊調(diào)用。
開源免費(fèi):Python是開源的,免費(fèi)使用,且有活躍的開發(fā)社區(qū)支持。
Python的應(yīng)用廣泛,包括數(shù)據(jù)分析、人工智能、Web開發(fā)、游戲開發(fā)等領(lǐng)
域。其簡(jiǎn)單易學(xué)和可擴(kuò)展性強(qiáng)的特點(diǎn)使其成為了許多程序員的首選編程語(yǔ)言。
1.2.2MySQL簡(jiǎn)介
MySQL是一個(gè)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQLAB公司開發(fā),
并由Oracle公司維護(hù)和支持。MySQL被廣泛用于Web應(yīng)用程序和其他類型的軟
件,以處理各種任務(wù),從簡(jiǎn)單的Web頁(yè)面到復(fù)雜的Web應(yīng)用程序,甚至是企業(yè)
級(jí)數(shù)據(jù)處理應(yīng)用。
MySQL的主要特點(diǎn)包括:
開源免費(fèi):MySQL是開源軟件,允許任何人免費(fèi)使用;同時(shí)也有一個(gè)商用版
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
本提供額外的功能和支持。
輕量級(jí):MySQL是非常輕量級(jí)的,能夠在多種操作系統(tǒng)和硬件平臺(tái)上運(yùn)行。
高擴(kuò)展性:MySQL支持大型數(shù)據(jù)庫(kù),能夠處理數(shù)百萬(wàn)到數(shù)十億行的數(shù)據(jù),并
支持分布式處理。
安全性:MySQL具有強(qiáng)大的安全功能,包括支持SSL加密,權(quán)限管理等,保
障數(shù)據(jù)安全。
性能強(qiáng)勁:MySQL在處理大量數(shù)據(jù)和高并發(fā)請(qǐng)求方面有很好的表現(xiàn),能夠快
速響應(yīng)大量的讀寫數(shù)據(jù)請(qǐng)求。
MySQL的應(yīng)用場(chǎng)景非常廣泛,包括Web應(yīng)用程序、軟件開發(fā)、大數(shù)據(jù)處理等
領(lǐng)域。借助MySQL的高擴(kuò)展性和高性能,用戶可以存儲(chǔ)和處理大量數(shù)據(jù),并輕
松地在互聯(lián)網(wǎng)上實(shí)現(xiàn)數(shù)據(jù)共享。
1.2.3Jypyternotebook簡(jiǎn)介
Jupyternotebook從本質(zhì)上來(lái)說(shuō)是一種應(yīng)用程序,是一種基于瀏覽器的
工具。它將一些解釋性文本、數(shù)學(xué)、計(jì)算等結(jié)合起來(lái),放在一個(gè)交互式的創(chuàng)作型
文檔中。并且在這個(gè)創(chuàng)作型文檔中所有的內(nèi)容都是可分享并可見的。在一些教
學(xué)或者項(xiàng)目的講解中,jupyternotebook或許是一枝獨(dú)秀。因?yàn)樗С諱arkdown
標(biāo)記語(yǔ)言,在瀏覽器界面編輯代碼的同時(shí)可以很方便的為代碼提供注釋。在
jypyternotebook執(zhí)行代碼的同時(shí)對(duì)于注釋性文本并不會(huì)執(zhí)行,這個(gè)極大的方便
了教學(xué)人員,或者開發(fā)人員講解項(xiàng)目
Jupyternotebook在大數(shù)據(jù)方面應(yīng)用比較廣泛,特別適合用來(lái)做數(shù)據(jù)的
清洗和處理,在數(shù)據(jù)挖掘和可視化上的應(yīng)用也是十分方便的。對(duì)于比較高層次的
開發(fā)人員來(lái)說(shuō),這個(gè)工具也可以用來(lái)做深度的機(jī)器學(xué)習(xí)。
對(duì)于初學(xué)者來(lái)說(shuō)安裝Jupyternotebook的方法就是安裝Anaconda,因?yàn)?/p>
Anaconda的版本中就是自帶Jupyternotebook。如果覺(jué)得不需要Anaconda,可
以自主選擇進(jìn)入官網(wǎng)下載安裝包。
2需求分析
2.1可行性需求分析
1、技術(shù)可行性
Python是面向?qū)ο笳Z(yǔ)言中的一門通俗易懂的計(jì)算機(jī)編程語(yǔ)言,本次項(xiàng)目中
使用Python編寫程序來(lái)實(shí)現(xiàn)數(shù)據(jù)獲取,數(shù)據(jù)清洗預(yù)處理,數(shù)據(jù)可視化。在數(shù)據(jù)獲
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
取的過(guò)程中遇到一些小問(wèn)題。隨后通過(guò)抓包分析發(fā)現(xiàn)瓜子二手車網(wǎng)站的頁(yè)面的
數(shù)據(jù)是動(dòng)態(tài)傳輸?shù)?所以我們通過(guò)瀏覽器控制臺(tái)獲取請(qǐng)求和其參數(shù)。然后就可以
得到網(wǎng)頁(yè)面數(shù)據(jù)的返回值。隨后將爬取出來(lái)的原始數(shù)據(jù)暫時(shí)以csv格式儲(chǔ)存起
來(lái),在后續(xù)的數(shù)據(jù)預(yù)處理和可視化中再進(jìn)行調(diào)用。最后我們會(huì)將準(zhǔn)確的數(shù)據(jù)存入
MySQL數(shù)據(jù)庫(kù)中做持久化儲(chǔ)存。
以上為此次項(xiàng)目的技術(shù)可行性,我也將在后續(xù)的工作中將所有的步驟實(shí)現(xiàn)
到位,保證數(shù)據(jù)的準(zhǔn)確性和安全性。
2、項(xiàng)目可行性
本次項(xiàng)目通過(guò)采集的是我們國(guó)家比較知名的二手車交易平臺(tái)瓜子二手車交
易平臺(tái),來(lái)分析我國(guó)的二手車市場(chǎng)行情,我們也將會(huì)從車輛品牌,車輛排量,
車輛顏色,車輛年份對(duì)他進(jìn)行深度的解析,分析出相對(duì)有價(jià)值的信息,最后用
可視化對(duì)結(jié)果進(jìn)行解析得出結(jié)論二手車交易平臺(tái),而建立一個(gè)完善的二手車交
易平臺(tái),不僅可以有效避免交易中的欺詐風(fēng)險(xiǎn),而且還可以提供保險(xiǎn)、退貨等
一系列服務(wù),為我們的二手車的買家和賣家提供更安全、放心、便利的交易環(huán)
境。
2.2采集目標(biāo)功能分析
本次項(xiàng)目的數(shù)據(jù)集的來(lái)源是瓜子二手車交易網(wǎng)站,是通過(guò)python爬取瓜子
二手車交易網(wǎng)站在湖南所有信息。數(shù)據(jù)清洗后共4333條記錄,爬取完成后會(huì)去
盡可能的檢查數(shù)據(jù)的準(zhǔn)確性,真實(shí)性,可行性,確定爬取出來(lái)的數(shù)據(jù)無(wú)誤并且是
屬于瓜子二手車交易網(wǎng)站實(shí)時(shí)存在的二手車信息。
分析瓜子二手車交易網(wǎng)站信息,明確我們需要爬取的二手車有車輛品牌、車
型、車輛排量、車輛顏色、車輛年份、生產(chǎn)批準(zhǔn)日期等數(shù)據(jù),在對(duì)原始的數(shù)據(jù)進(jìn)
行一個(gè)預(yù)處理后我們會(huì)對(duì)其數(shù)據(jù)進(jìn)行一個(gè)多個(gè)維度的分析。例如,從車輛的排量
對(duì)其進(jìn)行一個(gè)分析,查看有多少款車輛排量是2.0排量,又有多少車輛的排量是
1.6排量。又或者想要得到二手車車輛的車輛顏色,那么我們就可以根據(jù)車輛的
顏色去統(tǒng)計(jì)說(shuō)明什么顏色的車輛是最多的,查看什么顏色是人們普遍喜歡的顏
色并且更加容易賣出。
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲技術(shù)
在我們?nèi)粘I钪袨g覽網(wǎng)頁(yè)通常都會(huì)遇到需要緩存在本地的數(shù)據(jù),當(dāng)數(shù)量
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
量比較小的時(shí)候我們可以自己采取手動(dòng)下載的方式去獲得想要的數(shù)據(jù),不過(guò)在
我們的大數(shù)據(jù)領(lǐng)域一般用到的數(shù)據(jù)體量都是幾個(gè)G甚至幾個(gè)T的單位,這個(gè)時(shí)
候采取手動(dòng)下載獲取數(shù)據(jù)無(wú)疑是一個(gè)很愚蠢的方式,所以我們會(huì)采取網(wǎng)絡(luò)爬蟲
的手段自動(dòng)化的獲取數(shù)據(jù)。
網(wǎng)絡(luò)爬蟲也被人們叫做網(wǎng)絡(luò)機(jī)器人,顧名思義就是讓人們不用自己動(dòng)手操
作,只需要編寫程序或者一些小腳本用來(lái)自動(dòng)的瀏覽龐大的互聯(lián)網(wǎng),并且對(duì)想要
的目標(biāo)網(wǎng)頁(yè)去進(jìn)行精準(zhǔn)的數(shù)據(jù)的采集。當(dāng)下常見的一些網(wǎng)絡(luò)爬蟲按照實(shí)現(xiàn)的原
理和技術(shù)結(jié)構(gòu)一般可以分為:通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)絡(luò)爬蟲、增量式網(wǎng)絡(luò)爬蟲、
深層網(wǎng)絡(luò)爬蟲等一些類型。
在大家的印象中常常將普通的網(wǎng)絡(luò)爬蟲與黑客混為一談,其實(shí)二者之間有
很大的區(qū)別。黑客屬于違反法律肆意竊取個(gè)人或者組織內(nèi)有價(jià)值的信息以此獲
利,而爬蟲僅僅知識(shí)用來(lái)代替重復(fù)無(wú)意義的動(dòng)作,在合法合理的范圍內(nèi)去獲得自
己想要的信息,在一定程度上網(wǎng)絡(luò)爬蟲和普通用戶瀏覽網(wǎng)頁(yè)是沒(méi)有本質(zhì)區(qū)別的,
但是爬蟲確實(shí)可以作為一種攻擊的手段。在編寫網(wǎng)絡(luò)爬蟲的腳本時(shí)沒(méi)有設(shè)置一
定的睡眠緩沖時(shí)間,通過(guò)極高的頻率反復(fù)訪問(wèn)客戶端網(wǎng)站會(huì)讓服務(wù)器持續(xù)在高
強(qiáng)度環(huán)境下工作,對(duì)服務(wù)器造成一定的壓力,如果一時(shí)間處理不過(guò)來(lái)服務(wù)器往往
會(huì)自動(dòng)關(guān)機(jī),也就是宕機(jī),這也是常見的DDOS攻擊。
由此可見,網(wǎng)絡(luò)爬蟲技術(shù)在應(yīng)用場(chǎng)景的不同它發(fā)揮的作用也是不同的。在好
的場(chǎng)景下可以幫我們完成搶購(gòu)、投票、報(bào)名、搶購(gòu)等操作。但是在壞的場(chǎng)景下
同樣也能一直發(fā)送騷擾信息,給他人帶來(lái)困擾。爬蟲技術(shù)是一把雙刃劍,一個(gè)不
小心可能就會(huì)傷害到自己和他人,所以我們技術(shù)人員要懂法、守法。在法律允許
的范疇內(nèi)去編寫自己的腳本程序,不要一不小心半只腳踏進(jìn)犯罪的深淵。
有爬蟲技術(shù),那也一定存在反爬取的技術(shù)了。高級(jí)的爬蟲都會(huì)涉及到反爬蟲
的概念,往往能夠繞過(guò)或者突破人家的防守機(jī)制從而獲取到自己想到要的數(shù)據(jù)
時(shí),就代表爬蟲工程師的個(gè)人水平已經(jīng)很不錯(cuò)了。常見的反爬機(jī)制有IP、JS加
密、css反爬、或者Ajax異步、驗(yàn)證碼等等手段。這些手段會(huì)加大爬蟲工程師
的工作量,也會(huì)加大網(wǎng)站的開發(fā)成本。所以像一般的小網(wǎng)站最多設(shè)置一個(gè)小反爬,
對(duì)于我們獲取數(shù)據(jù)而言也相對(duì)容易。我們也不用去考慮成本的問(wèn)題。
2.3.2文件存取技術(shù)
Python內(nèi)置csv模塊如圖2-1顯示:
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖2-1python內(nèi)置csv模塊
2.3.3可視化技術(shù)
爬取下來(lái)的數(shù)據(jù)通過(guò)預(yù)處理、保存為csv文件格式。該數(shù)據(jù)集我們能否一
眼就得到我們想要的結(jié)論呢?答案是否定的!
我們需要一種技術(shù),根據(jù)我們獲取到的龐大數(shù)據(jù)將其通過(guò)統(tǒng)計(jì)學(xué)圖形的方
式展現(xiàn)在我們眼前,讓我們對(duì)其結(jié)果一目了然。這個(gè)就是數(shù)據(jù)可視化技術(shù)。
顯然我們獲取到的數(shù)據(jù)是一串串冗長(zhǎng)的字符串,上面寫的一條條信息或許
我們能夠看懂讀懂,但是當(dāng)它成千上萬(wàn)的時(shí)候我們短時(shí)間內(nèi)很難看出端倪和破
綻,我們需要進(jìn)行深入的了解和分析。對(duì)這一坨枯燥而乏味的數(shù)據(jù)集進(jìn)行處理完
畢后,我們就要導(dǎo)入需要的第三方庫(kù)將數(shù)據(jù)合理的進(jìn)行判斷,決定使用什么樣的
幾何圖形才能最好、并且直觀的表達(dá)出數(shù)據(jù)集的信息。
多年來(lái)可視化的技術(shù)也逐漸發(fā)展成為了一下三類:科學(xué)可視化、信息可視
化、可視化分析。而我們這里用到的就是信息可視化,信息可視化的處理對(duì)象是
非結(jié)構(gòu)化、非幾何的抽象數(shù)據(jù),如金融交易、社交網(wǎng)絡(luò)和文本數(shù)據(jù),其核心挑戰(zhàn)
是針對(duì)大尺度高維復(fù)雜數(shù)據(jù)如何減少視覺(jué)混淆對(duì)信息的干擾。
本次項(xiàng)目中僅僅只是將得到的數(shù)據(jù)用很簡(jiǎn)單的可視化手段實(shí)現(xiàn)數(shù)據(jù)可視化,
具體的就是用python第三方庫(kù)matpoltlab去進(jìn)行可視化,matplotlab中包含
了許多庫(kù),分別對(duì)應(yīng)餅圖、條形圖、直方圖、折線圖等圖形,可以很好的將數(shù)據(jù)
高效率的表現(xiàn)出來(lái),可視化圖形呈現(xiàn)出來(lái)后對(duì)于結(jié)果自然一目了然,然后得出結(jié)
論。
3數(shù)據(jù)采集
3.1采集頁(yè)面分析
我們首先通過(guò)谷歌瀏覽器搜索瓜子二手車的官方網(wǎng)頁(yè),然后找到湖南二手
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
車目錄集頁(yè)面觀察圖3-1,其中URL為:
/car-source/carDetail/detail然后點(diǎn)擊頁(yè)面下方的
分頁(yè)按鈕,同時(shí)觀察URL,發(fā)現(xiàn)URL沒(méi)有變化。
圖3-1數(shù)據(jù)網(wǎng)址頁(yè)面
按F12調(diào)出開發(fā)者工具,刷新頁(yè)面,如圖3-2。
圖3-2開發(fā)者工具
利用全局搜索工具定位所需數(shù)據(jù)位置,點(diǎn)擊開發(fā)者工具上面的Headers字
段,分析這是個(gè)什么請(qǐng)求,發(fā)現(xiàn)這個(gè)是一個(gè)GET請(qǐng)求,如圖3-3。
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-3FormData
3.2數(shù)據(jù)字段分析
我們先來(lái)到網(wǎng)頁(yè)面打開網(wǎng)頁(yè)的選擇欄,然后將選擇欄目定位到車輛要爬取
的位置也就是定位到我們所需要的數(shù)據(jù)所在的位置,然后跳出開發(fā)者工具頁(yè)面
刷新一下頁(yè)面再進(jìn)入,點(diǎn)擊開發(fā)者工具界面上方的數(shù)據(jù)預(yù)覽Preview按鈕,如圖
3-4,可以看到我們需要的所有的數(shù)據(jù)信息都是呈現(xiàn)json格式傳遞在這個(gè)網(wǎng)頁(yè)
面,我們還得知他是post方法響應(yīng)的網(wǎng)站,所以我們可以根據(jù)以上特點(diǎn)通過(guò)
Requests方法中的post方法來(lái)獲得響應(yīng)的數(shù)據(jù),最原始的數(shù)據(jù)格式是呈現(xiàn)
json格式的所以我們需要重復(fù)獲取響應(yīng)數(shù)據(jù)然后依次寫入到csv格式的文件當(dāng)
中。json數(shù)據(jù)中包括車輛品牌型號(hào)、年份、公里數(shù)、排量、顏色等數(shù)據(jù)字段。
圖3-4分析數(shù)據(jù)類型頁(yè)面
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
3.3編程實(shí)現(xiàn)
如圖3-5導(dǎo)入所需庫(kù)
圖3-5導(dǎo)入所需庫(kù)頁(yè)面
如圖3-6,3-7設(shè)置請(qǐng)求頭,偽裝成瀏覽器訪問(wèn)服務(wù)器。
圖3-6請(qǐng)求頭內(nèi)容頁(yè)面
圖3-7請(qǐng)求頭內(nèi)容頁(yè)面
代碼實(shí)現(xiàn)如下:
importcsv
importrandom
importtime
importrequests
importexecjs
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
defget_data(clueId):
cookies={
'uuid':'76f047df-50f5-4133-bc3b-35f9a3a59868',
'sessionid':'00872dac-1c74-44a8-8466-edafb5482c39',
'guazitrackersessioncadata':'%7B%22ca_kw%22%3A%22-%22%7D',
'cainfo':
'%7B%22ca_s%22%3A%22seo_baidu%22%2C%22ca_n%22%3A%22default%22%2C%22ca_
medium%22%3A%22-%22%2C%22ca_term%22%3A%22-%22%2C%22ca_content%22%3A%
22-%22%2C%22ca_campaign%22%3A%22-%22%2C%22ca_kw%22%3A%22-%22%2C%22ca
_i%22%3A%22-%22%2C%22scode%22%3A%22-%22%2C%22guid%22%3A%2276f047df-50f
5-4133-bc3b-35f9a3a59868%22%7D',
'user_city_id':'-1',
'cityDomain':'www',
'puuid':'40dfba84-b135-4ead-fce0-6a65b97e9232',
'dsnDataObj':'%7B%7D',
'browsingHistoryCount':'1',
}
ttt=str(round(time.time()*1000))
stringifyParams=
f'ca_n=default&ca_s=seo_baidu&clueId={clueId}&deviceId=76f047df-50f5-4133-bc3b-35f9a3a
59868&fromCrm=1&guazi_city=-1&guid=76f047df-50f5-4133-bc3b-35f9a3a59868&orgUserId=
&osv=ios&platfromSource=wap&sourceFrom=wap&unit=&userId=&versionId='
token=pile(open('瓜子二手車.js','r',encoding='utf-8').read()).call('get_token',
stringifyParams,ttt)
#print(token)
headers={
'authority':'',
'accept':'application/json,text/plain,*/*',
'accept-language':'zh-CN,zh;q=0.9',
'cache-control':'no-cache',
'client-time':ttt,
#'cookie':'uuid=76f047df-50f5-4133-bc3b-35f9a3a59868;
sessionid=00872dac-1c74-44a8-8466-edafb5482c39;
guazitrackersessioncadata=%7B%22ca_kw%22%3A%22-%22%7D;
cainfo=%7B%22ca_s%22%3A%22seo_baidu%22%2C%22ca_n%22%3A%22default%22%2C%
22ca_medium%22%3A%22-%22%2C%22ca_term%22%3A%22-%22%2C%22ca_content%22%
3A%22-%22%2C%22ca_campaign%22%3A%22-%22%2C%22ca_kw%22%3A%22-%22%2C%
22ca_i%22%3A%22-%22%2C%22scode%22%3A%22-%22%2C%22guid%22%3A%2276f047d
f-50f5-4133-bc3b-35f9a3a59868%22%7D;user_city_id=-1;cityDomain=www;
puuid=40dfba84-b135-4ead-fce0-6a65b97e9232;dsnDataObj=%7B%7D;
browsingHistoryCount=1',
'origin':'',
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
'pragma':'no-cache',
'referer':'/',
'sec-ch-ua':'"Chromium";v="110","NotA(Brand";v="24","GoogleChrome";v="110"',
'sec-ch-ua-mobile':'?0',
'sec-ch-ua-platform':'"Windows"',
'sec-fetch-dest':'empty',
'sec-fetch-mode':'cors',
'sec-fetch-site':'same-site',
'token':'',
'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36
(KHTML,likeGecko)Chrome/Safari/537.36',
'verify-token':token,
}
params={
'versionId':'',
'sourceFrom':'wap',
'deviceId':'76f047df-50f5-4133-bc3b-35f9a3a59868',
'guid':'76f047df-50f5-4133-bc3b-35f9a3a59868',
'userId':'',
'orgUserId':'',
'unit':'',
'clueId':clueId,
'guazi_city':'-1',
'ca_s':'seo_baidu',
'ca_n':'default',
'osv':'ios',
'fromCrm':'1',
'platfromSource':'wap',
}
response=requests.get(url='/car-source/carDetail/detail',
params=params,cookies=cookies,
headers=headers)
#print(response.json())
#print(clueId)
returnresponse.json()['data']
defdata_parse(json_data):
ifjson_data['carCommodityInfo']['carRecordInfo']['summary'][4]['value']=='自動(dòng)':
return0
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
item={}
item['品牌名稱']=json_data['carCommodityInfo']['basicInfo']['titleDesc']
item['公里數(shù)']=json_data['carCommodityInfo']['carRecordInfo']['summary'][1]['value']
item['價(jià)格']=json_data['carCommodityInfo']['carPriceInfo']['showPrice']
item['排量']=json_data['carCommodityInfo']['carRecordInfo']['summary'][4]['value']
item['車身顏色']=json_data['carCommodityInfo']['carRecordInfo']['summary'][7]['value']
withopen('瓜子二手車.csv','a',encoding='utf-8',newline='')asf:
#finame=['品牌名稱','公里數(shù)','價(jià)格','排量','車身顏色']
csv_writer=csv.writer(f)
csv_writer.writerow(item.values())
print(item)
defdata_clean(file1,file2):
withopen(f'{file2}.csv','a',encoding='utf-8',newline='')asf1:
csv_writer=csv.writer(f1)
withopen(f'{file1}.csv','r',encoding='utf-8')asf2:
#finame=['品牌名稱','公里數(shù)','價(jià)格','排量','車身顏色']
#csv_reader=csv.reader(f)
data=f2.read()
#print(data.split('\n')[1:-1])
count=0
foriindata.split('\n')[1:-1]:
ifi.split(',')[-2]!='自動(dòng)':
print(i)
csv_writer.writerow(i.split(','))
count+=1
print(count)
defmain(file):
withopen(f'{file}.txt','r',encoding='utf-8')asf:
s=f.read()
clueIds=s.split('\n')[:-1]
#print(clueIds)
forclueIdinclueIds[600:]:
print(clueId)
json_data=get_data(clueId)
data_parse(json_data)
time.sleep(random.randint(15,20)/10)
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
if__name__=='__main__':
main(file='clue_ids')
#data_clean(file1='瓜子二手車1',file2='瓜子二手車(清洗)')
4數(shù)據(jù)清洗與處理
獲得龐大的數(shù)據(jù)集之后我們需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,也就是所謂的清洗和
檢查,確定爬取過(guò)來(lái)的數(shù)據(jù)是否存在無(wú)效值和確實(shí)值,要保證數(shù)據(jù)的一致性,這
個(gè)對(duì)于信息質(zhì)量的評(píng)估是一項(xiàng)很重要的任務(wù)。不僅如此,我們需要將數(shù)據(jù)進(jìn)行有
理化和有序化,這樣子能夠在數(shù)據(jù)調(diào)用共享過(guò)程中方便很多開發(fā)人員對(duì)數(shù)據(jù)信
息的使用。
本次項(xiàng)目中我們需要將爬下來(lái)的數(shù)據(jù)和網(wǎng)頁(yè)原數(shù)據(jù)進(jìn)行比對(duì),并且檢查是
否出現(xiàn)空值、錯(cuò)值,還有數(shù)據(jù)的位置是否正確。根據(jù)不同的需求我們要對(duì)數(shù)據(jù)進(jìn)
行不同的處理。
4.1數(shù)據(jù)清洗
打開爬取到的數(shù)據(jù)文件,如下圖:
圖4-1查看表格數(shù)據(jù)的描述
我們?cè)趫D4-1中查看表格數(shù)據(jù)的表述,同時(shí)我們用isnull函數(shù)來(lái)查詢數(shù)據(jù)
是否缺失中經(jīng)過(guò)比對(duì)和檢查數(shù)據(jù),如圖4-2,確定爬取過(guò)來(lái)的數(shù)據(jù)沒(méi)有存在無(wú)效
值和確實(shí)值,要在我爬取的數(shù)據(jù)里面并沒(méi)有發(fā)現(xiàn)我所需的數(shù)據(jù)發(fā)現(xiàn)缺失,也沒(méi)有
多余的數(shù)據(jù)。
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-2查看表格是否有數(shù)據(jù)丟失
4.2數(shù)據(jù)儲(chǔ)存
數(shù)據(jù)儲(chǔ)存得方法有很多種,常見得可以直接用記事本格式儲(chǔ)存(txt),或者
直接用其他文件的形式儲(chǔ)存csv、excel、json等,但是以上方法保存的數(shù)據(jù)體
量普遍都比較小。如果需要儲(chǔ)存較大的數(shù)據(jù)信息就需要用到我們的數(shù)據(jù)庫(kù),數(shù)據(jù)
庫(kù)也分為關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)。關(guān)系型數(shù)據(jù)庫(kù)比較典型的有MySQL和
Oracle等,非關(guān)系型數(shù)據(jù)庫(kù)等以鍵值對(duì)形式儲(chǔ)存數(shù)據(jù)的代表有Mongodb、Redis
等。本次項(xiàng)目我們用到的是csv。
如圖4-3所示:
圖4-3數(shù)據(jù)存儲(chǔ)為csv頁(yè)面
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
4.3編程實(shí)現(xiàn)
如圖4-4,4-5,4-6。
圖4-4編程代碼(一)
圖4-5編程代碼(二)
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-6編程代碼(三)
圖4-7編程代碼(四)
5數(shù)據(jù)統(tǒng)計(jì)與分析
5.1數(shù)據(jù)準(zhǔn)備
導(dǎo)入相關(guān)庫(kù),如圖4-1、5-2。
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖5-1數(shù)據(jù)準(zhǔn)備頁(yè)面
圖5-2數(shù)據(jù)加載頁(yè)面
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2數(shù)據(jù)展示
5.2.1依據(jù)車輛品牌型號(hào)年限進(jìn)行統(tǒng)計(jì)
圖5-3數(shù)據(jù)展示頁(yè)面
我們把表格中的所有車輛品牌年限的字段數(shù)據(jù)進(jìn)行一個(gè)匯總以及一個(gè)處理,
隨后將他出現(xiàn)的頻率次數(shù)進(jìn)行統(tǒng)計(jì),最后生成一個(gè)特定的序列,在序列里面的
數(shù)據(jù)按照詞頻生成我們想要的詞云圖,如圖5-3中不難看出來(lái)年限里面2016款
和2018款是出現(xiàn)的最多的,其次便是2017款,可以看出在二手車市場(chǎng)里面五
至七年的年限的車是二手車?yán)锩娴念^牌,新車開到五至七年這個(gè)區(qū)間內(nèi)賣出的
概率是最高的,當(dāng)然也說(shuō)明了我們大部分人去考慮買二手車能接受的年限也就
是五至七年。
不僅如此,在詞云圖中我還發(fā)現(xiàn)了我們國(guó)家的進(jìn)口車輛與合資車是占據(jù)很
大部分的,國(guó)產(chǎn)車還得要更加的努力,爭(zhēng)取再過(guò)幾年的二手車市場(chǎng)能在詞云圖
上看到國(guó)產(chǎn)車。不難看出在詞云圖中的大部分品牌都屬于德國(guó)車或者日系車,
這也說(shuō)明了這兩個(gè)地區(qū)的車輛也是屬于我國(guó)人群購(gòu)買的主力。
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.2依據(jù)車輛公里數(shù)進(jìn)行統(tǒng)計(jì)
圖5-4數(shù)據(jù)展示頁(yè)面
從圖5-4中可以看出在十萬(wàn)公里以內(nèi)的車輛是二手車市場(chǎng)里面最多的,大
部分人都會(huì)在十萬(wàn)公里內(nèi)去將自己的車輛進(jìn)行交易,而大于了十萬(wàn)公里數(shù)的車
輛相對(duì)來(lái)說(shuō)比較少,這也充分的說(shuō)明了車輛在十萬(wàn)公里內(nèi)時(shí)進(jìn)行交易是最容易
出售的而根據(jù)有關(guān)網(wǎng)站對(duì)數(shù)據(jù)的統(tǒng)計(jì)中,絕大部分人對(duì)車輛的使用大概是一年
開一萬(wàn)公里左右,從圖中我們可以看出5到7萬(wàn)公里數(shù)的車是最多的,這也變
相證明了圖5-5的數(shù)據(jù)可靠性
5.2.3據(jù)車輛排量以及進(jìn)氣方式進(jìn)行統(tǒng)計(jì)和分析
圖5-5數(shù)據(jù)展示頁(yè)面
從圖5-5中我們可以很直觀的看出2.0T二手車是在所有排量中一騎絕塵
19
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
的,這個(gè)排量在所有的車?yán)锩媸且粋€(gè)黃金排量,能夠適用于大部分中國(guó)的大部
分地形。
要知道我國(guó)對(duì)于車輛是有排量稅的,所以在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版物流合作合同文檔大全
- 洛陽(yáng)科技職業(yè)學(xué)院《醫(yī)學(xué)遺傳學(xué)醫(yī)學(xué)細(xì)胞生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025地產(chǎn)公司土地合同管理辦法
- 商業(yè)零售設(shè)備電路改造合同
- 管道安裝腳手架施工合同范本
- 2025店鋪裝修合同常用版樣本
- 個(gè)人展會(huì)用車租賃協(xié)議
- 醫(yī)療衛(wèi)生服務(wù)采購(gòu)招投標(biāo)樣本
- 地鐵安全乘車禮儀指南
- 環(huán)保工程項(xiàng)目管理準(zhǔn)則
- 鋼化玻璃的MSDS英文報(bào)告
- 大學(xué)生情緒管理1500字論文2篇
- 2023廣東省成人高考《英語(yǔ)》(高升專)考試卷及答案(單選題型)
- 《德米安 埃米爾 辛克萊年少時(shí)的故事》讀書筆記思維導(dǎo)圖PPT模板下載
- 年產(chǎn)萬(wàn)噸天然飲用水生產(chǎn)項(xiàng)目可行性研究報(bào)告
- 臨床藥理學(xué)第十四章 腎功能不全臨床用藥
- YS/T 682-2008釕粉
- GB/T 5976-2006鋼絲繩夾
- 麗聲妙想英文繪本第一級(jí) My Dad課件
- 部編版五年級(jí)語(yǔ)文上-句子專項(xiàng)課件
- 初中語(yǔ)文人教九年級(jí)下冊(cè)《統(tǒng)一》PPT
評(píng)論
0/150
提交評(píng)論