欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python采集二手車數(shù)據(jù)的超詳細講解

 更新時間:2023年04月18日 11:31:26   作者:極客飛虎  
這篇文章主要為大家介紹了Python采集二手車數(shù)據(jù)實現(xiàn)的超詳細講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

數(shù)據(jù)采集

XPath,XML路徑語言的簡稱。XPath即為XML路徑語言(XML Path Language),它是一種用來確定XML文檔中某部分位置的語言。XPath主要用于解析XML文檔,可以用來獲取XML文檔中某個元素的位置、屬性值等信息。XPath可以用于XML文檔解析、XML數(shù)據(jù)抽取、XML路徑匹配等方面。

發(fā)送請求

首先,我們要進行數(shù)據(jù)來源分析,知道我們的需求是什么?

明確需求:

  • 明確采集網(wǎng)站是什么?
  • 明確采集數(shù)據(jù)是什么?

        車輛基本信息

然后,我們分析車輛基本信息數(shù)據(jù), 具體是請求那個網(wǎng)址可以得到我們想要的數(shù)據(jù)。

通過開發(fā)者工具, 進行抓包分析:

打開開發(fā)者工具: F12 / 鼠標右鍵點擊檢查選擇network

刷新網(wǎng)頁: 讓本網(wǎng)頁數(shù)據(jù)內容重新加載一遍 <方便分析數(shù)據(jù)出處>

搜索數(shù)據(jù)來源: 復制你想要的內容, 進行搜索即可

    import requests
    url = 'https://www.che168.com/china/a0_0msdgscncgpi1ltocsp1exx0/'
    header = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'}
    res = requests.get(url,headers=headers)

我們和之前一樣,獲取數(shù)據(jù),我們會發(fā)現(xiàn),車輛的基本信息就在網(wǎng)頁源代碼中,我們今天就用xpath的方法來解析數(shù)據(jù)。

解析數(shù)據(jù)

接下來,我們用xpath解析數(shù)據(jù)。我們用開發(fā)者工具定位到標簽位置。

 我們通過網(wǎng)頁源代碼,我們可以獲取到每一個網(wǎng)頁的url。

    selector=parsel.Selector(res.text)
    detail_url_list = selector.xpath('//ul[@class="viewlist_ul"]/li/a[@class="carinfo"]/@href').getall()

我們可以看到,得到下面數(shù)據(jù)。

我們會發(fā)現(xiàn),我們得到了兩種網(wǎng)頁,所以,在這里我們拼接網(wǎng)頁就需要注意,這里,我不多說,直接看我是怎么寫的。

        if detail_url.split('/') == '':
            detail_url = 'https:'+detail_url
        else:
            detail_url = 'https://www.che168.com'+detail_url

這樣,我們就得到了每一個車輛信息的數(shù)據(jù)網(wǎng)頁,看看運行之后的效果吧。

接下來,我們就依次訪問某個鏈接,獲取我們想要的數(shù)據(jù)。

    responses = requests.get(detail_url,headers=headers)
    detail_selector = parsel.Selector(responses.text)

我用不同顏色標注的,就是我們這次想要獲取的數(shù)據(jù),我們這里以車輛名稱為例,講解下path如何寫。

title = detail_selector.xpath('string(//h3[@class="car-brand-name"])').get("").strip()

我們看看網(wǎng)頁源代碼是如何得到的xpath。

 可能有人就要問了,這個

("").strip()

是什么意思?這個就是去除空格的,只是為了后期數(shù)據(jù)的美觀。

后面的我就不一一展示了,我直接放代碼了,不懂的在評論區(qū)交流。

tableShowMileage = detail_selector.xpath('//ul[@class="brand-unit-item fn-clear"]/li[1]/h4/text()').get("").strip()
theRegistrationTime = detail_selector.xpath('//ul[@class="brand-unit-item fn-clear"]/li[2]/h4/text()').get("").strip()
blockADisplacement = detail_selector.xpath('//ul[@class="brand-unit-item fn-clear"]/li[3]/h4/text()').get("").strip()
addr = detail_selector.xpath('//ul[@class="brand-unit-item fn-clear"]/li[4]/h4/text()').get("").strip()
guobiao = detail_selector.xpath('//ul[@class="brand-unit-item fn-clear"]/li[5]/h4/text()').get("").strip()
price = detail_selector.xpath('string(//span[@id="overlayPrice"])').get()

我們打印這些數(shù)據(jù),看看效果吧。

可能大家注意到了,有返回空值的,這個可能就是被反爬,大家感興趣可以用代理IP試試。 

保存數(shù)據(jù)

和我們上一篇一樣,我們先寫入字典,然后在寫入csv文件里面。

        dit ={
            '車輛':title,
            '表顯里程':tableShowMileage,
            '上牌時間':theRegistrationTime,
            '擋位/排量':blockADisplacement,
            '車輛所在地':addr,
            '查看限遷地':guobiao,
            '價格':price,
        }
        csv_writer.writerow(dit)

大家感興趣還可以獲取車輛信息更詳細的數(shù)據(jù),其實原理都是一樣的。

總結

通過本文的學習,我們學習了數(shù)據(jù)采集。我們在采集數(shù)據(jù)的時候,遇到各種問題,自己在嘗試解決問題,也是在一種學習,本次實戰(zhàn),我們明白如何使用xpath解析數(shù)據(jù)。

以上就是Python采集二手車數(shù)據(jù)的超詳細講解的詳細內容,更多關于Python采集二手車數(shù)據(jù)的資料請關注腳本之家其它相關文章!

相關文章

  • Python實現(xiàn)學生管理系統(tǒng)的代碼(JSON模塊)

    Python實現(xiàn)學生管理系統(tǒng)的代碼(JSON模塊)

    這篇文章主要介紹了Python實現(xiàn)學生管理系統(tǒng)的代碼(JSON模塊),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 探索Python神奇算術用代碼輕松求和的幾種方法

    探索Python神奇算術用代碼輕松求和的幾種方法

    求和是數(shù)學中最基本的運算之一,也是編程中常見的任務之一,Python 提供了多種方法來計算和求和數(shù)字,本文將掏出計算求和的不同方法,包括使用循環(huán)、內置函數(shù)以及第三方庫
    2023-11-11
  • Python的print用法示例

    Python的print用法示例

    這篇文章主要介紹了Python的print用法示例,需要的朋友可以參考下
    2014-02-02
  • python多線程實現(xiàn)TCP服務端

    python多線程實現(xiàn)TCP服務端

    這篇文章主要為大家詳細介紹了python多線程實現(xiàn)TCP服務端,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Jupyter?Notebook出現(xiàn)不是內部或外部的命令解決方案

    Jupyter?Notebook出現(xiàn)不是內部或外部的命令解決方案

    這篇文章主要介紹了Jupyter?Notebook出現(xiàn)不是內部或外部的命令解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python通過paramiko復制遠程文件及文件目錄到本地

    python通過paramiko復制遠程文件及文件目錄到本地

    這篇文章主要為大家詳細介紹了python通過paramiko復制遠程文件及文件目錄到本地,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 詳解在python中如何使用zlib模塊進行數(shù)據(jù)壓縮和解壓縮

    詳解在python中如何使用zlib模塊進行數(shù)據(jù)壓縮和解壓縮

    Python有一些內置庫用于處理數(shù)據(jù)壓縮和解壓縮,其中一個就是zlib模塊,這個模塊為DEFLATE壓縮算法和相關的gzip(文件格式)提供了支持,在這篇文章中,我們將深入探討如何使用zlib模塊進行數(shù)據(jù)壓縮和解壓縮
    2023-06-06
  • python實現(xiàn)三維擬合的方法

    python實現(xiàn)三維擬合的方法

    今天小編就為大家分享一篇python實現(xiàn)三維擬合的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Flask中endpoint的理解(小結)

    Flask中endpoint的理解(小結)

    這篇文章主要介紹了Flask中endpoint的理解(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • python logging日志模塊的詳解

    python logging日志模塊的詳解

    這篇文章主要介紹了python logging日志模塊的詳解的相關資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內容,需要的朋友可以參考下
    2017-10-10

最新評論