基于Python的瓜子二手車網(wǎng)數(shù)據(jù)采集與分析_第1頁(yè)
基于Python的瓜子二手車網(wǎng)數(shù)據(jù)采集與分析_第2頁(yè)
基于Python的瓜子二手車網(wǎng)數(shù)據(jù)采集與分析_第3頁(yè)
基于Python的瓜子二手車網(wǎng)數(shù)據(jù)采集與分析_第4頁(yè)
基于Python的瓜子二手車網(wǎng)數(shù)據(jù)采集與分析_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論