基于Python的汽車信息爬取與分析_第1頁
基于Python的汽車信息爬取與分析_第2頁
基于Python的汽車信息爬取與分析_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

二、《基于Python的汽車數(shù)據(jù)爬取與分析》1課題內(nèi)容和要求問題的提出用Python語言自行編寫爬蟲框架或使用Scrapy框架,爬取汽車之家或易車網(wǎng)的車輛相關(guān)數(shù)據(jù),按照品牌、車系、年款、價(jià)格等信息進(jìn)行分類和顯示。使用正那么表達(dá)式從網(wǎng)頁中提取有用的數(shù)據(jù)??梢詫?shí)現(xiàn)多線程爬取,以提高爬取效率。在此根底上可以進(jìn)一步獲取用戶反應(yīng)信息,評(píng)價(jià)不同車型的優(yōu)劣。1.2選題背景與意義在現(xiàn)在這種互聯(lián)網(wǎng)浪潮下,信息正在扮演越來越重要的角色。人們獲取信息,分析信息,利用信息。而怎樣快速便捷地獲取信息成為人們非常關(guān)注的問題。同時(shí),隨著中國工業(yè)化水平和經(jīng)濟(jì)水平的提高,汽車成為家庭必需品。人們對(duì)汽車信息的需求也在不斷增大。在此背景下,我們選擇了“基于python的汽車信息爬取與分析〞這個(gè)課題,因?yàn)槲覀兿胍ㄟ^這次鍛煉切實(shí)地解決一個(gè)現(xiàn)實(shí)問題。1.3開發(fā)工具簡(jiǎn)介運(yùn)行環(huán)境如果要運(yùn)行此軟件,用戶計(jì)算機(jī)必須有Python環(huán)境和Scrapy環(huán)境。開發(fā)環(huán)境本軟件基于Python3.6和Scrapy1.4開發(fā)Scrapy各組件版本號(hào)如下:Python:3.6.1(v3.6.1:69c0db5,Mar212023,17:54:52)pyOpenSSL:17.3.0(OpenSSL1.1.0f25May2023)開發(fā)工具Pycharm、cmder2需求分析2.1可行性分析技術(shù)可行性:python在爬蟲方面有資源和環(huán)境優(yōu)勢(shì)。易車網(wǎng)對(duì)爬蟲腳本比擬友好。操作可行性:Scrapy作為一個(gè)非常強(qiáng)大的爬蟲框架,有著它易用,高效的一面。同時(shí)由于Scrapy對(duì)于有python學(xué)習(xí)背景的人來說上手不算困難,故此工程可以用Scrapy來實(shí)現(xiàn)。2.2系統(tǒng)數(shù)據(jù)需求本系統(tǒng)最終將爬取到的數(shù)據(jù)以csv文件存儲(chǔ)在本地工程根目錄下,方便用戶通過excel軟件直接對(duì)數(shù)據(jù)進(jìn)行查看和分析。2.3系統(tǒng)的性能需求此系統(tǒng)基于Scrapy框架,由于Scrapy默認(rèn)支持多線程爬取,系統(tǒng)的性能根本可以到達(dá)要求。而稍后的測(cè)試結(jié)果也佐證了此結(jié)果。3概要設(shè)計(jì)3.1系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)3.2系統(tǒng)模塊設(shè)計(jì)基于scrapy,我們的工程分為4個(gè)模塊,分別是定義爬取數(shù)據(jù)模塊、爬取模塊、配置模塊和數(shù)據(jù)處理模塊。我們?cè)趇tem.py中CarItem類中定義要爬取的數(shù)據(jù),如品牌、車系、年款、價(jià)格等等。爬取模塊會(huì)直接引用該類創(chuàng)立的對(duì)象對(duì)數(shù)據(jù)進(jìn)行保存。我們?cè)趐ipelines.py中設(shè)置對(duì)爬取下來的數(shù)據(jù)的處理方式,比方存儲(chǔ)方式、過濾去重等操作。該文件從bitauto.py文件中獲取爬取到的信息,并進(jìn)行相關(guān)處理。我們?cè)趕ettings.py中對(duì)工程進(jìn)行一些必要設(shè)置,如優(yōu)先級(jí)、多線程、延遲等。同時(shí)在測(cè)試時(shí),我們可以根據(jù)修改此文件的配置信息來控制變量測(cè)試相關(guān)因素對(duì)爬取效率的影響。bitauto.py是主要爬取方法實(shí)現(xiàn)的文件。分析網(wǎng)頁,獲取信息,跳轉(zhuǎn)頁面等等核心操作全部由此文件來實(shí)現(xiàn)。4詳細(xì)設(shè)計(jì)類圖:核心算法流程圖:核心操作全部在bitauto.py中實(shí)現(xiàn),故此局部主要描述bitauto.py的設(shè)計(jì)。具體實(shí)現(xiàn)采用面向過程的編程方法,具體到代碼那么是4個(gè)方法,分別是parse(),parse_detail(),parse_soft()和parse_word()方法。Parse()方法用于從主頁面獲取品牌信息列表,并生成相關(guān)車系鏈接并調(diào)用parse_detail()方法對(duì)車系頁面進(jìn)行處理。分析源碼發(fā)現(xiàn)當(dāng)前熱銷的汽車品牌保存在一個(gè)無序列表<ul>中。我們對(duì)此無序列表中的每個(gè)<li>標(biāo)簽進(jìn)行遍歷,獲取它的href屬性并生成絕對(duì)鏈接。在每生成一個(gè)鏈接之后,我們可以在yield語句中調(diào)用request方法進(jìn)到下級(jí)頁面去獲取相關(guān)信息。Parse_detail()方法用于獲取某品牌的車系列表,并生成相關(guān)車輛具體信息頁面的URL,調(diào)用parse_soft()方法對(duì)車輛的詳情頁面進(jìn)行處理。分析當(dāng)前頁面源碼發(fā)現(xiàn)各種車型都被包裹在一個(gè)<div>標(biāo)簽中。我們可以對(duì)此標(biāo)簽下的<a>標(biāo)簽進(jìn)行獲取,并得到href屬性,這里得到的是相對(duì)鏈接,然后把它拼接成絕對(duì)鏈接,這樣我們就獲取到了每個(gè)車型的詳情頁面。同樣使用yield調(diào)用request方法可以進(jìn)行下級(jí)頁面的分析。Parse_soft()方法爬取車輛的根本信息,包括品牌、車系、年款、價(jià)格和評(píng)分,并生成口碑鏈接調(diào)用parse_word()方法對(duì)車輛的口碑信息進(jìn)行處理。此頁面的處理比擬簡(jiǎn)單,我們需要的各種信息都以各種標(biāo)簽的形式直接出現(xiàn)在源碼中,直接可以提取出來。然后獲取口碑鏈接以同樣的方法跳轉(zhuǎn)口碑頁面。Parse_word()方法用于獲取車輛的優(yōu)缺點(diǎn)和用戶評(píng)論,此方法是最后一個(gè)方法。此頁面中將優(yōu)點(diǎn)、缺點(diǎn)和評(píng)論分別放在一個(gè)<div>中,對(duì)<div>進(jìn)行遍歷,即可得到相關(guān)數(shù)據(jù)。它們的調(diào)用關(guān)系是逐級(jí)調(diào)用。5測(cè)試數(shù)據(jù)及其結(jié)果分析為了測(cè)試爬取數(shù)據(jù)的正確性,我們?cè)O(shè)計(jì)爬取易車網(wǎng)當(dāng)前熱銷的16款品牌下的所有車型,共計(jì)約500款,而我們對(duì)此爬取的結(jié)果與我們直接在網(wǎng)站上記錄的結(jié)果數(shù)目根本吻合,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論