1. 程式人生 > 其它 >最新!Python爬蟲專案案例講解一步步教你爬取淘寶商品資料

最新!Python爬蟲專案案例講解一步步教你爬取淘寶商品資料

Python爬蟲、資料分析、網站開發等案例教程視訊免費線上觀看

https://space.bilibili.com/523606542 

完整程式碼可以加Python學習交流群:1039649593找管理員免費領取

前言

隨著網際網路時代的到來,人們更加傾向於網際網路購物,某寶又是電商行業的巨頭,在某寶平臺中有很多商家資料,今天帶大家使用python+selenium工具獲取這些公開的商家資料

環境介紹:

  • python 3.6
  • pycharm
  • selenium
  • csv
  • time
  • random
這次的受害者:淘寶購物平臺

1. 建立一個瀏覽器物件

from selenium import
webdriver driver = webdriver.Chrome()

2. 執行自動化頁面操作

driver.get('https://www.taobao.com/')
driver.maximize_window()  # 最大化瀏覽器
driver.implicitly_wait(10)  # 設定瀏覽器的隱式等待, 智慧化的等待

到這一步,你就可以自己執行程式碼看看可不可以自動開啟你的瀏覽器進入淘寶的首頁

3. 根據關鍵字搜尋商品, 解決登入

複製它的xpath,用xpath語法提取頁面標籤的元素

def search_product(keyword):
    # 輸入框的標籤物件
driver.find_element_by_xpath('//*[@id="q"]').send_keys(keyword) word = input('請輸入你要搜尋商品的關鍵字:')

執行程式碼

前面搞定了搜尋框的,現在來寫點選搜尋按鈕的,同樣複製它的xpath

# 為了避免被檢測
import time  # 時間模組  內建模組
time.sleep(random.randint(1, 3))  # 隨機休眠1到3秒
driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()

4. 解決登入

點選了搜尋按鈕以後,會彈出登入介面給你,那就繼續解決登入

driver.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys(TAO_USERNAME)
time.sleep(random.randint(1, 2))
driver.find_element_by_xpath('//*[@id="fm-login-password"]').send_keys(TAO_PASSWORD)
time.sleep(random.randint(1, 2))
driver.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()

5. 解析資料

獲取目標資料的div標籤

def parse_data():
    # 所有div標籤
    divs = driver.find_elements_by_xpath('//div[@class="grid g-clearfix"]/div/div')  

用for迴圈遍歷取值

for div in divs:  # 二次提取
    title = div.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text
    price = div.find_element_by_xpath('.//strong').text + ''  # 商品價格  # 手寫
    deal = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text  # 付款人數  # 手寫
    name = div.find_element_by_xpath('.//div[@class="shop"]/a/span[2]').text  # 店鋪名稱  # 手寫
    location = div.find_element_by_xpath('.//div[@class="location"]').text  # 店鋪地址  # 手寫
    detail_url = div.find_element_by_xpath('.//div[@class="pic"]/a').get_attribute('href')  # 詳情頁地址  # 手寫

    print(title, price, deal, name, location, detail_url)

執行程式碼,可以看到獲取的資料了

6. 最後一步,儲存資料

import csv

with open('淘寶.csv', mode='a', encoding='utf-8', newline='') as f:
    csv_write = csv.writer(f)  # 例項化csv模組寫入物件
    csv_write.writerow([title, price, deal, name, location, detail_url])