python自動(dòng)化爬取淘寶商品數(shù)據(jù)

hello,大家好,我是夜斗小神社!

電商時(shí)代,淘寶、京東、天貓商品數(shù)據(jù)對(duì)店鋪運(yùn)營(yíng)有極大的幫助,因此獲取相應(yīng)店鋪商品的數(shù)據(jù)能夠帶來(lái)極大的價(jià)值,那么我們?nèi)绾潍@取到相應(yīng)的數(shù)據(jù)呢?

上一篇我們講了python打包exe可執(zhí)行文件:
Python打包成exe文件史上最詳細(xì)教程:
https://blog.csdn.net/xtreallydance/article/details/112643658
這次我們來(lái)講解淘寶爬蟲代碼————代碼如下:

from selenium import webdriver
import time
import csv
import re

導(dǎo)入自動(dòng)化的庫(kù)selenium, 緩存時(shí)間time庫(kù), 將文件保存為csv形式, 導(dǎo)入re正則匹配的庫(kù)

if __name__ == '__main__':
    keyword = input("請(qǐng)輸入你要商品的關(guān)鍵字:")
    path = r'L:\webdriver\chromedriver.exe'
    driver = webdriver.Chrome(path)
    driver.get('https://www.taobao.com/')
    main()

輸入查詢的關(guān)鍵字: 例如輸入ins潮流T恤,path為webdriver.exe驅(qū)動(dòng)設(shè)備存放的路徑,實(shí)例化一個(gè)driver對(duì)象,然后利用get方法訪問(wèn)淘寶網(wǎng)址!再調(diào)用main()方法.

請(qǐng)大家記住,一定要掃碼登錄!不然會(huì)被淘寶反爬!如圖所示!

掃碼登錄
  • 程序運(yùn)行開(kāi)始結(jié)果如下:

[圖片上傳失敗...(image-4e94d7-1610765478375)]

def main():
    print('正在爬取第一頁(yè)數(shù)據(jù)')

    page = search_product(keyword)
    get_product()
    page_num = 1
    # q不變 0 44 188(頁(yè)數(shù)*44)
    while page_num != page:
        print('-*-' * 50 )
        print('正在爬取第{}頁(yè)的數(shù)據(jù)'.format(page_num + 1))
        print('*-*' * 50)
        driver.get('https://s.taobao.com/search?q={}&s={}'.format(keyword, page_num))
        # 瀏覽器等待方法
        driver.implicitly_wait(2)
        # 最大化瀏覽器
        driver.maximize_window()
        get_product()
        page_num += 1

main()方法當(dāng)中呢,首先利用search_product函數(shù)與get_product函數(shù)爬取一頁(yè)的數(shù)據(jù), 再利用while循環(huán)爬取全部數(shù)據(jù), 我們首先講解一頁(yè)數(shù)據(jù)的爬取.

def search_product(key):
    driver.find_element_by_id('q').send_keys(key)
    driver.find_element_by_class_name('btn-search').click()
    # 瀏覽器窗口最大化
    driver.maximize_window()
    time.sleep(15)
    # 因?yàn)樽詣?dòng)登錄基本實(shí)現(xiàn)不了,所以要實(shí)現(xiàn)手動(dòng)登錄
    # 找到頁(yè)數(shù)的標(biāo)簽
    page = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]').text
    page = re.findall('(\d+)', page)[0]
    return int(page)

首先利用driver.find_element_by_id這個(gè)方法找到輸入框,將key這個(gè)變量輸入到搜索框中,再利用driver.find_element_by_class_name方法找到搜索兩個(gè)字,利用click()方法點(diǎn)擊搜索.將窗口最大化,并暫停15s.因?yàn)樽詣?dòng)登錄淘寶當(dāng)中會(huì)被阿里巴巴識(shí)別,所有暫停15s是為了用手動(dòng)掃碼登錄. 然后用用xapth找到page頁(yè)數(shù)的標(biāo)簽,匹配數(shù)字獲取第一個(gè)值,返回page頁(yè)數(shù),比如第5頁(yè),返回的就是5,將參數(shù)傳入到page中,在調(diào)用get_product()方法獲取這一頁(yè)的商品詳細(xì)數(shù)據(jù),例如商品名字、商品價(jià)格、付款人數(shù)、商品地址、商品店鋪名等等等,下面來(lái)看get_product()這個(gè)函數(shù)

爬取數(shù)據(jù)中
def get_product():
    divs = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')
    print(divs)
    for div in divs:
        # 商品名稱
        info = div.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text
        # 商品價(jià)格
        price = div.find_element_by_xpath('.//strong').text + "元"
        # 付款人數(shù)
        deal = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text
        # 店鋪名稱
        name = div.find_element_by_xpath('.//div[@class="shop"]/a').text
        # 店鋪地點(diǎn)
        place = div.find_element_by_xpath('.//div[@class="location"]').text
        print(info, price, deal, name, place, sep='|')
        with open('ins短袖.csv', 'a', newline="") as fp:
            csvwriter = csv.writer(fp, delimiter=',')
            csvwriter.writerow([info, price, deal, name, place])

首先找到商品列表的標(biāo)簽divs,然后利用for循環(huán)獲取每一個(gè)商品的div標(biāo)簽,利用xpath語(yǔ)法獲取到info、price、deal、name、place信息然后保存為csv文件形式!

  • 最終爬取下來(lái)的數(shù)據(jù)導(dǎo)入到excel中,如圖所示:


    excel表格數(shù)據(jù)顯示

好啦今天的分享就到這里啦,然后小夜斗就要滾去學(xué)習(xí)啦,see you!

  • 在這個(gè)星球上,你很重要,請(qǐng)珍惜你的珍貴! ~~~夜斗小神社

[圖片上傳失敗...(image-89f7f3-1610765478375)]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 JS學(xué)習(xí)剛剛開(kāi)始中,因?yàn)橐恍┢婀值脑?,?duì)爬蟲感興趣,然后就想著能不能寫一個(gè)爬淘寶商品的python。pyt...
    文展_閱讀 7,456評(píng)論 13 6
  • 前言 前面介紹了使用selenium和chromedriver通過(guò)模擬瀏覽器運(yùn)行的方式可以做到在瀏覽器中看到是什么...
    浩成聊技術(shù)閱讀 3,104評(píng)論 0 2
  • 創(chuàng)建爬蟲項(xiàng)目 首先確保在Python環(huán)境下安裝好Scrapy。具體過(guò)程可以參考我之前的文章Python環(huán)境下Scr...
    巧不巧克力閱讀 3,411評(píng)論 0 2
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)、焦點(diǎn)、注意力、語(yǔ)言聯(lián)想、情景聯(lián)想 觀點(diǎn): 1.統(tǒng)計(jì)學(xué)現(xiàn)在叫數(shù)據(jù)分析,社會(huì)...
    Jenaral閱讀 5,978評(píng)論 0 5
  • 昨天,在回家的路上,坐在車?yán)镉圃沼圃盏乜粗摹度龉衬墓适隆?,我被里面的?nèi)容深深吸引住了,盡管上學(xué)時(shí)...
    夜闌曉語(yǔ)閱讀 3,938評(píng)論 2 9

友情鏈接更多精彩內(nèi)容