欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

雙十一購物攻略:如何利用爬蟲技術(shù)獲取歷史價格趨勢,理性購物不踩雷

freeflydom
2024年11月12日 9:9 本文熱度 529

雙十一購物狂歡節(jié)即將到來,作為程序員,利用爬蟲技術(shù)查詢商品的歷史價格趨勢,似乎是一個合理的需求,畢竟這只是為了自己參考,不涉及商業(yè)用途。然而,小伙伴們在進(jìn)行爬蟲操作時一定要謹(jǐn)慎小心,尤其是在數(shù)據(jù)采集和使用的過程中,務(wù)必遵守相關(guān)法律法規(guī)與平臺的使用規(guī)范。

每次和大家講解爬蟲時,我總是提醒一句:“謹(jǐn)慎、謹(jǐn)慎、再謹(jǐn)慎!”不僅要避免觸犯法律,也要避免對網(wǎng)站的正常運營造成影響,保持理性和合規(guī)。

商品獲取

好的,我們的第一步是進(jìn)入京東的查詢頁面,找到并打開我們關(guān)注的商品頁面。例如,假設(shè)我最關(guān)注的是顯卡的價格和相關(guān)數(shù)據(jù),那么接下來我就會去查詢顯卡的具體信息。通過這種方式,我們能夠獲取到顯卡的相關(guān)商品數(shù)據(jù)。如圖:

你要做的工作是找到我們的商品信息請求連接。這個連接可能不好找,所以你需要耐心地逐個查看相關(guān)頁面。我已經(jīng)幫你找到這個連接了,現(xiàn)在我們可以直接根據(jù)它開始編寫爬蟲腳本,目標(biāo)是從中提取商品鏈接。你可以通過右鍵點擊請求,選擇“復(fù)制請求為Python代碼”來直接獲取Python代碼。

至于在線工具,市場上有很多類似的工具可以幫助你轉(zhuǎn)換請求,但我就不一一列舉了,你可以根據(jù)需求自行選擇合適的工具。

代碼部分你可以自己編寫,我這里只會提供一些關(guān)鍵部分的示例代碼,幫助你更好地理解如何實現(xiàn)。以下是我為你整理的關(guān)鍵代碼片段:

response = requests.get('https://api.m.jd.com/', params=params, cookies=cookies, headers=headers)
    # 使用BeautifulSoup解析HTML
    soup = BeautifulSoup(response.text, 'html.parser')
    # 查找所有符合條件的div標(biāo)簽
    div_tags = soup.find_all('div', class_='p-name p-name-type-2')
    # 循環(huán)遍歷每個div標(biāo)簽,提取信息
    for div_tag in div_tags:
        # 查找 span 標(biāo)簽中是否有 "自營" 標(biāo)識
        self_operated_tag = div_tag.find('span', class_='p-tag')
        
        if self_operated_tag and '自營' in self_operated_tag.text:
            # 提取顯卡名稱和鏈接
            a_tag = div_tag.find('a', href=True)
            product_name = a_tag.find('em').text.strip()
            
            # 處理相對路徑,拼接為完整的URL
            link = 'https:' + a_tag['href'] if a_tag['href'].startswith('//') else a_tag['href']
            store.append({
                'name': product_name,
                'link': link
            })
            # 打印結(jié)果
            print("名稱:", product_name)
            print("鏈接:", link)
        else:
            print("沒有找到自營標(biāo)識或沒有相關(guān)信息。")
    
    sort_data(store,keyword)
    def sort_data(data,name):
    with open(name+'.csv','a',newline='',encoding='utf8')as f:
        writer=csv.writer(f)
        for i in data:
            writer.writerow((i['name'],i['link']))

這里我們只關(guān)注自營商品,因為自營商品的品質(zhì)相對有保障。為了避免頻繁爬取導(dǎo)致封號的風(fēng)險,我將爬取到的數(shù)據(jù)存儲到了CSV文件中,便于后續(xù)使用。畢竟,不建議頻繁地向同一網(wǎng)站發(fā)起請求,這樣很容易被封禁。

以下是我爬取的某一頁的數(shù)據(jù)示例。如果你需要獲取多個頁面的數(shù)據(jù),只需調(diào)整相關(guān)參數(shù)即可,確保分頁功能正常工作。爬取的示例數(shù)據(jù)如下所示:

沒錯,我并沒有爬取商品的實時價格,因為我們這次的主要目標(biāo)是獲取歷史價格數(shù)據(jù)。不過,在抓取歷史價格的同時,順便也爬取了商品的最新價格,這樣既能滿足需求,又不會浪費額外的爬取時間。因此,當(dāng)前的代碼已經(jīng)覆蓋了這兩方面的內(nèi)容。

接下來,我們可以轉(zhuǎn)到另一個網(wǎng)站,看看它的數(shù)據(jù)結(jié)構(gòu)和爬取方式,以便進(jìn)行比較和優(yōu)化。

歷史價格爬取

在成功獲取完當(dāng)前網(wǎng)站的數(shù)據(jù)后,我們將轉(zhuǎn)向爬取另一個網(wǎng)站的數(shù)據(jù)。首先,為了確保能夠順利抓取到所需的歷史價格信息,我們需要在Web端進(jìn)行一些初步的測試。通過手動操作和分析網(wǎng)絡(luò)請求,我確認(rèn)了能夠獲取歷史價格數(shù)據(jù)的請求接口。

經(jīng)過一番測試和調(diào)試后,我成功找到了正確的請求連接。接下來,我將展示這個連接,供大家參考。如下所示:

我們計劃逐步抓取每一個商品鏈接的歷史價格信息,以確保數(shù)據(jù)的全面性和準(zhǔn)確性。然而,在抓取過程中,我注意到請求的內(nèi)容中包含了一個加密部分,這使得我們無法直接獲取到完整的價格數(shù)據(jù)。這一加密內(nèi)容需要解密或進(jìn)一步處理,才能確保我們能夠成功提取出歷史價格。

因此,在繼續(xù)抓取之前,我們需要先分析并處理這個加密機(jī)制。以下是加密部分的內(nèi)容,供參考:

在這個請求過程中,使用的并不是商品的直接鏈接,而是一個經(jīng)過加密處理的“code”參數(shù)。實際上,商品鏈接在上面的請求中已經(jīng)經(jīng)歷了一定的轉(zhuǎn)換處理,因此我們無需過于擔(dān)心這個轉(zhuǎn)換步驟,它只是多了一道處理環(huán)節(jié)而已,對數(shù)據(jù)獲取本身沒有實質(zhì)性影響。

我們只需要按照指定的方式獲取這個“code”參數(shù),并在后續(xù)請求中正確使用它即可。經(jīng)過一系列分析和處理,最終的代碼實現(xiàn)如下所示:

def get_history(itemid):
    #此處省略一堆代碼
    params = {
        'ud': 'EAONJNRXWXSMTBKNNYL_1730899204',
        'reqid': '46db0db9f67129f31d1fca1f96ed4239',
        'checkCode': 'ada35e4f5d7c1c55403289ec49df69e3P9f1',
        'con': itemid,
    }
    data = {
        'checkCode': 'ada35e4f5d7c1c55403289ec49df69e3P9f1',
        'con': itemid,
    }
    response = requests.post('http://www.tool168.cn/dm/ptinfo.php', params=params, cookies=cookies, headers=headers, data=data, verify=False)
    
    #此處省略一堆代碼
    code =   json.loads(response.text)
    params = {
        'code': code['code'],
        't': '',
        'ud': 'EAONJNRXWXSMTBKNNYL_1730899204',
        'reqid': '46db0db9f67129f31d1fca1f96ed4239',
    }
    response = requests.post('http://www.tool168.cn/dm/history.php', params=params, cookies=cookies, headers=headers, verify=False)
    # 正則表達(dá)式匹配Date.UTC中的日期和價格
    pattern = r"Date.UTC\((\d{4}),(\d{1,2}),(\d{1,2})\),([\d\.]+)"
    matches = re.findall(pattern, response.text)
    # 解析日期和價格
    prices = []
    for match in matches:
        year, month, day, price = match
        date = datetime(int(year), int(month) + 1, int(day))  # 月份是從0開始的,需要加1
        prices.append((date, float(price)))
    # 找出最低價格、最高價格和最新價格
    min_price = min(prices, key=lambda x: x[1])
    max_price = max(prices, key=lambda x: x[1])
    latest_price = prices[-1]
    # 打印結(jié)果
    print(f"最低價格: {min_price[1]},日期: {min_price[0].strftime('%Y-%m-%d')}")
    print(f"最高價格: {max_price[1]},日期: {max_price[0].strftime('%Y-%m-%d')}")
    print(f"最新價格: {latest_price[1]},日期: {latest_price[0].strftime('%Y-%m-%d')}")
    
get_history("https://item.jd.com/100061261651.html")    

最后,通過對獲取到的歷史價格數(shù)據(jù)進(jìn)行分析,我們可以基于價格的波動趨勢做出合理的購買判斷!看下最終的效果:

剩下的工作就是對代碼進(jìn)行優(yōu)化的過程了。在這個階段,我們的主要目標(biāo)是展示一個基本的實現(xiàn)思路,并且驗證相關(guān)功能是否有效。實際上,我們并不打算爬取所有商品的詳細(xì)信息,因為這不僅不符合我們的實際需求,而且在實際操作中也沒有必要。

總結(jié)

總的來說,爬蟲技術(shù)為我們提供了豐富的數(shù)據(jù)資源,但在使用過程中,謹(jǐn)慎行事,理性操作,才能真正讓爬蟲技術(shù)為我們的生活帶來便利,而不是帶來麻煩。希望大家在即將到來的雙十一購物狂歡節(jié)中,既能抓住機(jī)會購買心儀的商品,又能遵守道德與法律的底線,做一個負(fù)責(zé)任的技術(shù)使用者。

轉(zhuǎn)自https://www.cnblogs.com/guoxiaoyu/p/18531125


該文章在 2024/11/12 9:11:03 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved