版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
目錄
1引言............................................................................................................................1
1.1項(xiàng)目背景......................................................................................................1
1.2開發(fā)環(huán)境與工具..........................................................................................2
1.2.1Python簡介..........................................................................................2
1.2.2MySQL簡介............................................................................................2
1.2.3Jypyternotebook簡介......................................................................2
2需求分析.....................................................................................錯誤!未定義書簽。
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采集頁面分析..............................................................................................6
3.2字段分析......................................................................................................8
3.3編程實(shí)現(xiàn)......................................................................................................9
4數(shù)據(jù)清洗與處理......................................................................................................13
4.1數(shù)據(jù)清洗....................................................................................................13
4.2數(shù)據(jù)儲存....................................................................................................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引言
時光荏苒,1980年開始一直到2000年,我國的汽車發(fā)展呈現(xiàn)的是跨越式的,
我國的汽車產(chǎn)量已經(jīng)達(dá)到了一百萬臺,在2000年突破了兩百萬臺,并且我國的
民用乘車量從八零年的五千四百臺發(fā)展到了零零年的六十一萬臺,由這些數(shù)字
的佐證,很難不看出這是一段我國汽車時代的跨越式發(fā)展,就像人們常常說的,
歷史是無法抵擋的,有波折,有倒退,但從歷史性的角度來看,我國的汽車發(fā)
展是在大步向前的。
近二十年我國的汽車發(fā)展更是來到了一個巔峰,不僅在以前我國的汽車只
能依靠進(jìn)口,但在2000年之后我們國家開始有了合資品牌,顧名思義合資車就
是外國品牌給我們國家的汽車廠家提供技術(shù)而由我國的汽車廠家制造車輛,甚
至我國還誕生出了自己國家的汽車品牌,比如比亞迪,紅旗,吉利等等響當(dāng)當(dāng)
的汽車品牌。
根據(jù)公安部來布最新的據(jù),截至2022年11月,我們?nèi)珖臋C(jī)動車保有量
為四點(diǎn)一五億臺,其中汽車的保有量達(dá)到了驚人的三點(diǎn)一八億臺,從這些數(shù)據(jù)
中我們便可以看出我們國家的二手車市場也是非常之巨大的。特別是到現(xiàn)在我
們都是比較喜新厭舊的,所以很多人都會把自己的車輛變賣來換成其他的車,
這也就誕生了二手車市場。
1.1項(xiàng)目背景
二手車市場是一個龐大而且不斷增長的市場,在這個市場中,人們可以以
比新車更便宜的價格購買汽車,并在之后將它們再次轉(zhuǎn)手賣掉。因此,二手車
交易也是一個非常大的市場,為人們提供了一種更便宜、更實(shí)用的購車方式。
然而,二手車市場存在一些問題,例如質(zhì)量不一、價格不透明、交易安全等。
因此,針對這些問題,許多企業(yè)開始探索使用技術(shù)手段來解決這些問題,因此
我們可以使用大數(shù)據(jù)信息技術(shù)對車輛進(jìn)行一個全面的分析。
大數(shù)據(jù)技術(shù)可以通過分析和處理海量的數(shù)據(jù),在二手車買賣過程中提供更
好的解決方案,例如幫助消費(fèi)者評估汽車的質(zhì)量、為汽車定價、提供更安全和
可靠的交易平臺等。因此,二手車交易的大數(shù)據(jù)分析解決方案正逐漸成為一個
備受關(guān)注的領(lǐng)域。
但是,與新車市場相比,二手車市場存在一些問題。例如,二手車的質(zhì)量
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
和狀態(tài)存在著較大的不確定性,消費(fèi)者難以準(zhǔn)確評估其實(shí)際價值;價格和交易
過程缺乏透明度,買家可能會陷入價格陷阱或遭受欺詐。針對這些問題,一些
企業(yè)開始探索運(yùn)用大數(shù)據(jù)技術(shù),通過分析海量數(shù)據(jù)和應(yīng)用智能算法,為消費(fèi)者
提供更準(zhǔn)確、透明和安全的二手車購車體驗(yàn)。
1.2開發(fā)環(huán)境與工具
1.2.1Python簡介
Python是一種高層次、解釋型的動態(tài)編程語言,被廣泛用于機(jī)器學(xué)習(xí)、人
工智能、數(shù)據(jù)處理、Web開發(fā)、科學(xué)計(jì)算、網(wǎng)絡(luò)爬蟲等領(lǐng)域。它的哲學(xué)是代碼可
讀性和簡潔性,語法簡單明了,易于學(xué)習(xí)和使用。
Python的主要特點(diǎn)有:
簡單易學(xué):Python語法簡單明了,支持面向?qū)ο缶幊?、函?shù)式編程和過程
編程。
跨平臺:Python可以在類Unix、Linux、Windows等幾乎所有操作系統(tǒng)上運(yùn)
行,具有很強(qiáng)的可移植性。
Python有豐富的第三方庫和工具,包括NumPy、SciPy、Pandas、Matplotlib
等用于數(shù)據(jù)分析和科學(xué)計(jì)算的庫,Django、Flask等用于Web開發(fā)的框架,以及
機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的庫如TensorFlow、PyTorch等。
擴(kuò)展性強(qiáng):Python可以使用C、C++等編寫擴(kuò)展模塊,也可以被其他語言作
為擴(kuò)展模塊調(diào)用。
開源免費(fèi):Python是開源的,免費(fèi)使用,且有活躍的開發(fā)社區(qū)支持。
Python的應(yīng)用廣泛,包括數(shù)據(jù)分析、人工智能、Web開發(fā)、游戲開發(fā)等領(lǐng)
域。其簡單易學(xué)和可擴(kuò)展性強(qiáng)的特點(diǎn)使其成為了許多程序員的首選編程語言。
1.2.2MySQL簡介
MySQL是一個流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司開發(fā),
并由Oracle公司維護(hù)和支持。MySQL被廣泛用于Web應(yīng)用程序和其他類型的軟
件,以處理各種任務(wù),從簡單的Web頁面到復(fù)雜的Web應(yīng)用程序,甚至是企業(yè)
級數(shù)據(jù)處理應(yīng)用。
MySQL的主要特點(diǎn)包括:
開源免費(fèi):MySQL是開源軟件,允許任何人免費(fèi)使用;同時也有一個商用版
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
本提供額外的功能和支持。
輕量級:MySQL是非常輕量級的,能夠在多種操作系統(tǒng)和硬件平臺上運(yùn)行。
高擴(kuò)展性:MySQL支持大型數(shù)據(jù)庫,能夠處理數(shù)百萬到數(shù)十億行的數(shù)據(jù),并
支持分布式處理。
安全性:MySQL具有強(qiáng)大的安全功能,包括支持SSL加密,權(quán)限管理等,保
障數(shù)據(jù)安全。
性能強(qiáng)勁:MySQL在處理大量數(shù)據(jù)和高并發(fā)請求方面有很好的表現(xiàn),能夠快
速響應(yīng)大量的讀寫數(shù)據(jù)請求。
MySQL的應(yīng)用場景非常廣泛,包括Web應(yīng)用程序、軟件開發(fā)、大數(shù)據(jù)處理等
領(lǐng)域。借助MySQL的高擴(kuò)展性和高性能,用戶可以存儲和處理大量數(shù)據(jù),并輕
松地在互聯(lián)網(wǎng)上實(shí)現(xiàn)數(shù)據(jù)共享。
1.2.3Jypyternotebook簡介
Jupyternotebook從本質(zhì)上來說是一種應(yīng)用程序,是一種基于瀏覽器的
工具。它將一些解釋性文本、數(shù)學(xué)、計(jì)算等結(jié)合起來,放在一個交互式的創(chuàng)作型
文檔中。并且在這個創(chuàng)作型文檔中所有的內(nèi)容都是可分享并可見的。在一些教
學(xué)或者項(xiàng)目的講解中,jupyternotebook或許是一枝獨(dú)秀。因?yàn)樗С諱arkdown
標(biāo)記語言,在瀏覽器界面編輯代碼的同時可以很方便的為代碼提供注釋。在
jypyternotebook執(zhí)行代碼的同時對于注釋性文本并不會執(zhí)行,這個極大的方便
了教學(xué)人員,或者開發(fā)人員講解項(xiàng)目
Jupyternotebook在大數(shù)據(jù)方面應(yīng)用比較廣泛,特別適合用來做數(shù)據(jù)的
清洗和處理,在數(shù)據(jù)挖掘和可視化上的應(yīng)用也是十分方便的。對于比較高層次的
開發(fā)人員來說,這個工具也可以用來做深度的機(jī)器學(xué)習(xí)。
對于初學(xué)者來說安裝Jupyternotebook的方法就是安裝Anaconda,因?yàn)?/p>
Anaconda的版本中就是自帶Jupyternotebook。如果覺得不需要Anaconda,可
以自主選擇進(jìn)入官網(wǎng)下載安裝包。
2需求分析
2.1可行性需求分析
1、技術(shù)可行性
Python是面向?qū)ο笳Z言中的一門通俗易懂的計(jì)算機(jī)編程語言,本次項(xiàng)目中
使用Python編寫程序來實(shí)現(xiàn)數(shù)據(jù)獲取,數(shù)據(jù)清洗預(yù)處理,數(shù)據(jù)可視化。在數(shù)據(jù)獲
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
取的過程中遇到一些小問題。隨后通過抓包分析發(fā)現(xiàn)瓜子二手車網(wǎng)站的頁面的
數(shù)據(jù)是動態(tài)傳輸?shù)?所以我們通過瀏覽器控制臺獲取請求和其參數(shù)。然后就可以
得到網(wǎng)頁面數(shù)據(jù)的返回值。隨后將爬取出來的原始數(shù)據(jù)暫時以csv格式儲存起
來,在后續(xù)的數(shù)據(jù)預(yù)處理和可視化中再進(jìn)行調(diào)用。最后我們會將準(zhǔn)確的數(shù)據(jù)存入
MySQL數(shù)據(jù)庫中做持久化儲存。
以上為此次項(xiàng)目的技術(shù)可行性,我也將在后續(xù)的工作中將所有的步驟實(shí)現(xiàn)
到位,保證數(shù)據(jù)的準(zhǔn)確性和安全性。
2、項(xiàng)目可行性
本次項(xiàng)目通過采集的是我們國家比較知名的二手車交易平臺瓜子二手車交
易平臺,來分析我國的二手車市場行情,我們也將會從車輛品牌,車輛排量,
車輛顏色,車輛年份對他進(jìn)行深度的解析,分析出相對有價值的信息,最后用
可視化對結(jié)果進(jìn)行解析得出結(jié)論二手車交易平臺,而建立一個完善的二手車交
易平臺,不僅可以有效避免交易中的欺詐風(fēng)險(xiǎn),而且還可以提供保險(xiǎn)、退貨等
一系列服務(wù),為我們的二手車的買家和賣家提供更安全、放心、便利的交易環(huán)
境。
2.2采集目標(biāo)功能分析
本次項(xiàng)目的數(shù)據(jù)集的來源是瓜子二手車交易網(wǎng)站,是通過python爬取瓜子
二手車交易網(wǎng)站在湖南所有信息。數(shù)據(jù)清洗后共4333條記錄,爬取完成后會去
盡可能的檢查數(shù)據(jù)的準(zhǔn)確性,真實(shí)性,可行性,確定爬取出來的數(shù)據(jù)無誤并且是
屬于瓜子二手車交易網(wǎng)站實(shí)時存在的二手車信息。
分析瓜子二手車交易網(wǎng)站信息,明確我們需要爬取的二手車有車輛品牌、車
型、車輛排量、車輛顏色、車輛年份、生產(chǎn)批準(zhǔn)日期等數(shù)據(jù),在對原始的數(shù)據(jù)進(jìn)
行一個預(yù)處理后我們會對其數(shù)據(jù)進(jìn)行一個多個維度的分析。例如,從車輛的排量
對其進(jìn)行一個分析,查看有多少款車輛排量是2.0排量,又有多少車輛的排量是
1.6排量。又或者想要得到二手車車輛的車輛顏色,那么我們就可以根據(jù)車輛的
顏色去統(tǒng)計(jì)說明什么顏色的車輛是最多的,查看什么顏色是人們普遍喜歡的顏
色并且更加容易賣出。
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲技術(shù)
在我們?nèi)粘I钪袨g覽網(wǎng)頁通常都會遇到需要緩存在本地的數(shù)據(jù),當(dāng)數(shù)量
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
量比較小的時候我們可以自己采取手動下載的方式去獲得想要的數(shù)據(jù),不過在
我們的大數(shù)據(jù)領(lǐng)域一般用到的數(shù)據(jù)體量都是幾個G甚至幾個T的單位,這個時
候采取手動下載獲取數(shù)據(jù)無疑是一個很愚蠢的方式,所以我們會采取網(wǎng)絡(luò)爬蟲
的手段自動化的獲取數(shù)據(jù)。
網(wǎng)絡(luò)爬蟲也被人們叫做網(wǎng)絡(luò)機(jī)器人,顧名思義就是讓人們不用自己動手操
作,只需要編寫程序或者一些小腳本用來自動的瀏覽龐大的互聯(lián)網(wǎng),并且對想要
的目標(biāo)網(wǎng)頁去進(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ū)別。黑客屬于違反法律肆意竊取個人或者組織內(nèi)有價值的信息以此獲
利,而爬蟲僅僅知識用來代替重復(fù)無意義的動作,在合法合理的范圍內(nèi)去獲得自
己想要的信息,在一定程度上網(wǎng)絡(luò)爬蟲和普通用戶瀏覽網(wǎng)頁是沒有本質(zhì)區(qū)別的,
但是爬蟲確實(shí)可以作為一種攻擊的手段。在編寫網(wǎng)絡(luò)爬蟲的腳本時沒有設(shè)置一
定的睡眠緩沖時間,通過極高的頻率反復(fù)訪問客戶端網(wǎng)站會讓服務(wù)器持續(xù)在高
強(qiáng)度環(huán)境下工作,對服務(wù)器造成一定的壓力,如果一時間處理不過來服務(wù)器往往
會自動關(guān)機(jī),也就是宕機(jī),這也是常見的DDOS攻擊。
由此可見,網(wǎng)絡(luò)爬蟲技術(shù)在應(yīng)用場景的不同它發(fā)揮的作用也是不同的。在好
的場景下可以幫我們完成搶購、投票、報(bào)名、搶購等操作。但是在壞的場景下
同樣也能一直發(fā)送騷擾信息,給他人帶來困擾。爬蟲技術(shù)是一把雙刃劍,一個不
小心可能就會傷害到自己和他人,所以我們技術(shù)人員要懂法、守法。在法律允許
的范疇內(nèi)去編寫自己的腳本程序,不要一不小心半只腳踏進(jìn)犯罪的深淵。
有爬蟲技術(shù),那也一定存在反爬取的技術(shù)了。高級的爬蟲都會涉及到反爬蟲
的概念,往往能夠繞過或者突破人家的防守機(jī)制從而獲取到自己想到要的數(shù)據(jù)
時,就代表爬蟲工程師的個人水平已經(jīng)很不錯了。常見的反爬機(jī)制有IP、JS加
密、css反爬、或者Ajax異步、驗(yàn)證碼等等手段。這些手段會加大爬蟲工程師
的工作量,也會加大網(wǎng)站的開發(fā)成本。所以像一般的小網(wǎng)站最多設(shè)置一個小反爬,
對于我們獲取數(shù)據(jù)而言也相對容易。我們也不用去考慮成本的問題。
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ù)
爬取下來的數(shù)據(jù)通過預(yù)處理、保存為csv文件格式。該數(shù)據(jù)集我們能否一
眼就得到我們想要的結(jié)論呢?答案是否定的!
我們需要一種技術(shù),根據(jù)我們獲取到的龐大數(shù)據(jù)將其通過統(tǒng)計(jì)學(xué)圖形的方
式展現(xiàn)在我們眼前,讓我們對其結(jié)果一目了然。這個就是數(shù)據(jù)可視化技術(shù)。
顯然我們獲取到的數(shù)據(jù)是一串串冗長的字符串,上面寫的一條條信息或許
我們能夠看懂讀懂,但是當(dāng)它成千上萬的時候我們短時間內(nèi)很難看出端倪和破
綻,我們需要進(jìn)行深入的了解和分析。對這一坨枯燥而乏味的數(shù)據(jù)集進(jìn)行處理完
畢后,我們就要導(dǎo)入需要的第三方庫將數(shù)據(jù)合理的進(jìn)行判斷,決定使用什么樣的
幾何圖形才能最好、并且直觀的表達(dá)出數(shù)據(jù)集的信息。
多年來可視化的技術(shù)也逐漸發(fā)展成為了一下三類:科學(xué)可視化、信息可視
化、可視化分析。而我們這里用到的就是信息可視化,信息可視化的處理對象是
非結(jié)構(gòu)化、非幾何的抽象數(shù)據(jù),如金融交易、社交網(wǎng)絡(luò)和文本數(shù)據(jù),其核心挑戰(zhàn)
是針對大尺度高維復(fù)雜數(shù)據(jù)如何減少視覺混淆對信息的干擾。
本次項(xiàng)目中僅僅只是將得到的數(shù)據(jù)用很簡單的可視化手段實(shí)現(xiàn)數(shù)據(jù)可視化,
具體的就是用python第三方庫matpoltlab去進(jìn)行可視化,matplotlab中包含
了許多庫,分別對應(yīng)餅圖、條形圖、直方圖、折線圖等圖形,可以很好的將數(shù)據(jù)
高效率的表現(xiàn)出來,可視化圖形呈現(xiàn)出來后對于結(jié)果自然一目了然,然后得出結(jié)
論。
3數(shù)據(jù)采集
3.1采集頁面分析
我們首先通過谷歌瀏覽器搜索瓜子二手車的官方網(wǎng)頁,然后找到湖南二手
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
車目錄集頁面觀察圖3-1,其中URL為:
/car-source/carDetail/detail然后點(diǎn)擊頁面下方的
分頁按鈕,同時觀察URL,發(fā)現(xiàn)URL沒有變化。
圖3-1數(shù)據(jù)網(wǎng)址頁面
按F12調(diào)出開發(fā)者工具,刷新頁面,如圖3-2。
圖3-2開發(fā)者工具
利用全局搜索工具定位所需數(shù)據(jù)位置,點(diǎn)擊開發(fā)者工具上面的Headers字
段,分析這是個什么請求,發(fā)現(xiàn)這個是一個GET請求,如圖3-3。
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-3FormData
3.2數(shù)據(jù)字段分析
我們先來到網(wǎng)頁面打開網(wǎng)頁的選擇欄,然后將選擇欄目定位到車輛要爬取
的位置也就是定位到我們所需要的數(shù)據(jù)所在的位置,然后跳出開發(fā)者工具頁面
刷新一下頁面再進(jìn)入,點(diǎn)擊開發(fā)者工具界面上方的數(shù)據(jù)預(yù)覽Preview按鈕,如圖
3-4,可以看到我們需要的所有的數(shù)據(jù)信息都是呈現(xiàn)json格式傳遞在這個網(wǎng)頁
面,我們還得知他是post方法響應(yīng)的網(wǎng)站,所以我們可以根據(jù)以上特點(diǎn)通過
Requests方法中的post方法來獲得響應(yīng)的數(shù)據(jù),最原始的數(shù)據(jù)格式是呈現(xiàn)
json格式的所以我們需要重復(fù)獲取響應(yīng)數(shù)據(jù)然后依次寫入到csv格式的文件當(dāng)
中。json數(shù)據(jù)中包括車輛品牌型號、年份、公里數(shù)、排量、顏色等數(shù)據(jù)字段。
圖3-4分析數(shù)據(jù)類型頁面
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
3.3編程實(shí)現(xiàn)
如圖3-5導(dǎo)入所需庫
圖3-5導(dǎo)入所需庫頁面
如圖3-6,3-7設(shè)置請求頭,偽裝成瀏覽器訪問服務(wù)器。
圖3-6請求頭內(nèi)容頁面
圖3-7請求頭內(nèi)容頁面
代碼實(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']=='自動':
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['價格']=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ù)','價格','排量','車身顏色']
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ù)','價格','排量','車身顏色']
#csv_reader=csv.reader(f)
data=f2.read()
#print(data.split('\n')[1:-1])
count=0
foriindata.split('\n')[1:-1]:
ifi.split(',')[-2]!='自動':
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ù)集之后我們需要對數(shù)據(jù)進(jìn)行預(yù)處理,也就是所謂的清洗和
檢查,確定爬取過來的數(shù)據(jù)是否存在無效值和確實(shí)值,要保證數(shù)據(jù)的一致性,這
個對于信息質(zhì)量的評估是一項(xiàng)很重要的任務(wù)。不僅如此,我們需要將數(shù)據(jù)進(jìn)行有
理化和有序化,這樣子能夠在數(shù)據(jù)調(diào)用共享過程中方便很多開發(fā)人員對數(shù)據(jù)信
息的使用。
本次項(xiàng)目中我們需要將爬下來的數(shù)據(jù)和網(wǎng)頁原數(shù)據(jù)進(jìn)行比對,并且檢查是
否出現(xiàn)空值、錯值,還有數(shù)據(jù)的位置是否正確。根據(jù)不同的需求我們要對數(shù)據(jù)進(jìn)
行不同的處理。
4.1數(shù)據(jù)清洗
打開爬取到的數(shù)據(jù)文件,如下圖:
圖4-1查看表格數(shù)據(jù)的描述
我們在圖4-1中查看表格數(shù)據(jù)的表述,同時我們用isnull函數(shù)來查詢數(shù)據(jù)
是否缺失中經(jīng)過比對和檢查數(shù)據(jù),如圖4-2,確定爬取過來的數(shù)據(jù)沒有存在無效
值和確實(shí)值,要在我爬取的數(shù)據(jù)里面并沒有發(fā)現(xiàn)我所需的數(shù)據(jù)發(fā)現(xiàn)缺失,也沒有
多余的數(shù)據(jù)。
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-2查看表格是否有數(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
等。本次項(xiàng)目我們用到的是csv。
如圖4-3所示:
圖4-3數(shù)據(jù)存儲為csv頁面
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)庫,如圖4-1、5-2。
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖5-1數(shù)據(jù)準(zhǔn)備頁面
圖5-2數(shù)據(jù)加載頁面
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2數(shù)據(jù)展示
5.2.1依據(jù)車輛品牌型號年限進(jìn)行統(tǒng)計(jì)
圖5-3數(shù)據(jù)展示頁面
我們把表格中的所有車輛品牌年限的字段數(shù)據(jù)進(jìn)行一個匯總以及一個處理,
隨后將他出現(xiàn)的頻率次數(shù)進(jìn)行統(tǒng)計(jì),最后生成一個特定的序列,在序列里面的
數(shù)據(jù)按照詞頻生成我們想要的詞云圖,如圖5-3中不難看出來年限里面2016款
和2018款是出現(xiàn)的最多的,其次便是2017款,可以看出在二手車市場里面五
至七年的年限的車是二手車?yán)锩娴念^牌,新車開到五至七年這個區(qū)間內(nèi)賣出的
概率是最高的,當(dāng)然也說明了我們大部分人去考慮買二手車能接受的年限也就
是五至七年。
不僅如此,在詞云圖中我還發(fā)現(xiàn)了我們國家的進(jìn)口車輛與合資車是占據(jù)很
大部分的,國產(chǎn)車還得要更加的努力,爭取再過幾年的二手車市場能在詞云圖
上看到國產(chǎn)車。不難看出在詞云圖中的大部分品牌都屬于德國車或者日系車,
這也說明了這兩個地區(qū)的車輛也是屬于我國人群購買的主力。
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.2依據(jù)車輛公里數(shù)進(jìn)行統(tǒng)計(jì)
圖5-4數(shù)據(jù)展示頁面
從圖5-4中可以看出在十萬公里以內(nèi)的車輛是二手車市場里面最多的,大
部分人都會在十萬公里內(nèi)去將自己的車輛進(jìn)行交易,而大于了十萬公里數(shù)的車
輛相對來說比較少,這也充分的說明了車輛在十萬公里內(nèi)時進(jìn)行交易是最容易
出售的而根據(jù)有關(guān)網(wǎng)站對數(shù)據(jù)的統(tǒng)計(jì)中,絕大部分人對車輛的使用大概是一年
開一萬公里左右,從圖中我們可以看出5到7萬公里數(shù)的車是最多的,這也變
相證明了圖5-5的數(shù)據(jù)可靠性
5.2.3據(jù)車輛排量以及進(jìn)氣方式進(jìn)行統(tǒng)計(jì)和分析
圖5-5數(shù)據(jù)展示頁面
從圖5-5中我們可以很直觀的看出2.0T二手車是在所有排量中一騎絕塵
19
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
的,這個排量在所有的車?yán)锩媸且粋€黃金排量,能夠適用于大部分中國的大部
分地形。
要知道我國對于車輛是有排量稅的,所以在
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省南平市松溪縣第一中學(xué)2021-2022學(xué)年高一生物上學(xué)期期末試卷含解析
- 2024版?zhèn)€人住宅小產(chǎn)權(quán)轉(zhuǎn)讓協(xié)議樣式版B版
- 2025年度新型建筑材料貨物質(zhì)押擔(dān)保合同模板3篇
- 2024水電裝修合同范本老舊小區(qū)改造工程3篇
- 培育小思考家
- 農(nóng)場全維度運(yùn)營解析
- 復(fù)式公寓租賃協(xié)議(2篇)
- 2025年度金融機(jī)構(gòu)財(cái)產(chǎn)保全擔(dān)保業(yè)務(wù)操作細(xì)則合同3篇
- 《離婚父母探望權(quán)實(shí)施細(xì)則補(bǔ)充合同》(2024版)版B版
- 貴陽八中小賣部場地租賃經(jīng)營合同
- 廣東省廣州市天河區(qū)五校2023-2024學(xué)年高二上學(xué)期期末模擬試卷地理試題(解析版)
- 幼兒園小班游戲教案《大鴨子小鴨子》
- 布氏桿菌脊柱炎的護(hù)理
- 教育培訓(xùn)行業(yè)跨學(xué)科教育發(fā)展
- 智能充電樁的管理與優(yōu)化調(diào)度
- 最全全國各省市縣名稱
- 學(xué)校新媒體管理制度規(guī)章
- 校本課程生活中的化學(xué)
- 小麥冬季管理技術(shù)意見
- 三年級數(shù)學(xué)上冊學(xué)業(yè)質(zhì)量評價方案
- 財(cái)商培訓(xùn)課件
評論
0/150
提交評論