宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產(chǎn)品動態(tài)
精選推薦

用 Python 寫個小爬蟲,按關(guān)鍵字搜索天貓商品

管理 管理 編輯 刪除

一、為什么想爬天貓搜索頁?

淘寶/天貓的商品信息豐富、結(jié)構(gòu)清晰,是練習(xí)爬蟲技術(shù)的“黃金練兵場”。
比如你可能想:

  • 按關(guān)鍵詞批量獲取商品標(biāo)題、價格、銷量
  • 做一個小型選品工具
  • 學(xué)習(xí)如何繞過動態(tài)加載、登錄、滑塊等反爬機(jī)制
  • 今天我們就從最基礎(chǔ)的“關(guān)鍵詞搜索”入手,帶你一步步用 Selenium 實現(xiàn)。


二、技術(shù)路線:Selenium 模擬瀏覽器

天貓搜索頁是 動態(tài)渲染 的,直接 requests.get 拿到的 HTML 里沒有商品數(shù)據(jù)。
所以采用 Selenium + ChromeDriver 模擬真人操作:打開瀏覽器 → 輸入關(guān)鍵詞 → 回車 → 抓取結(jié)果。



三、準(zhǔn)備工作

  1. 安裝依賴

bash

pip install selenium

2.下載 ChromeDriverChromeDriver 官網(wǎng)版本必須與你本地 Chrome 一致!把 chromedriver.exe 放到系統(tǒng) PATH 或代碼同級目錄即可。



四、完整代碼(可直接跑)

Python

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time, csv, os

def search_tmall(keyword, pages=2):
    # 1. 啟動瀏覽器
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-blink-features=AutomationControlled')
    driver = webdriver.Chrome(options=options)
    driver.implicitly_wait(10)

    # 2. 打開天貓首頁
    driver.get('https://www.tmall.com')

    # 3. 定位搜索框 → 輸入關(guān)鍵詞 → 回車
    search_box = driver.find_element(By.ID, 'mq')
    search_box.send_keys(keyword)
    search_box.send_keys(Keys.ENTER)

    # 4. 準(zhǔn)備保存數(shù)據(jù)
    csv_file = f'tmall_{keyword}.csv'
    with open(csv_file, 'w', newline='', encoding='utf-8-sig') as f:
        writer = csv.writer(f)
        writer.writerow(['商品標(biāo)題', '價格', '銷量', '商品鏈接'])

        # 5. 翻頁抓取
        for page in range(1, pages + 1):
            print(f'正在抓取第 {page} 頁...')
            time.sleep(3)  # 等待頁面加載

            # 6. 解析當(dāng)前頁商品列表
            items = driver.find_elements(By.CSS_SELECTOR, '.product-iWrap')
            for item in items:
                try:
                    title = item.find_element(By.CSS_SELECTOR, '.productTitle a').text
                    price = item.find_element(By.CSS_SELECTOR, '.productPrice em').text.replace('¥', '')
                    sales = item.find_element(By.CSS_SELECTOR, '.productStatus span:first-child').text
                    link = item.find_element(By.CSS_SELECTOR, '.productTitle a').get_attribute('href')
                    writer.writerow([title, price, sales, link])
                except Exception as e:
                    continue

            # 7. 點(diǎn)擊“下一頁”
            try:
                next_btn = driver.find_element(By.CSS_SELECTOR, 'a.ui-page-next')
                if 'disabled' in next_btn.get_attribute('class'):
                    break
                next_btn.click()
            except:
                break

    driver.quit()
    print(f'已保存 {csv_file},共抓取 {pages} 頁數(shù)據(jù)。')

if __name__ == '__main__':
    keyword = input('請輸入要搜索的關(guān)鍵詞:')
    search_tmall(keyword, pages=3)
    


五、運(yùn)行效果

輸入關(guān)鍵詞“藍(lán)牙耳機(jī)”,程序會自動打開瀏覽器,完成搜索并翻頁,最終生成 tmall_藍(lán)牙耳機(jī).csv,包含:


商品標(biāo)題價格銷量商品鏈接
Sony WH-1000XM5 官方旗艦...2499月銷 3000+https://detail.tmall.com/...


六、常見問題 & 小貼士


問題解決思路
被檢測為爬蟲--disable-blink-features=AutomationControlled 或使用 undetected-chromedriver
滑塊/登錄手動掃碼一次后保留 Cookie,下次復(fù)用 user-data-dir
速度太慢用顯式等待 WebDriverWait 替代 time.sleep,或抓接口(需逆向)
想抓更多字段點(diǎn)進(jìn)詳情頁后繼續(xù)用 Selenium 解析,或調(diào)用官方 API(需申請)


七、進(jìn)階路線

  1. 接入淘寶開放平臺官方 APIitem_search_tmall)——合規(guī)又穩(wěn)定
  2. 用 Scrapy + Redis 實現(xiàn)分布式抓取
  3. 上代理池、無頭瀏覽器、驗證碼識別,打造“工業(yè)級”爬蟲
  4. 把數(shù)據(jù)丟進(jìn) MongoDB → 用 Pandas 清洗 → 可視化分析,一條龍做選品報告


八、寫在最后

爬蟲技術(shù)再炫酷,也別忘了合法合規(guī)這條紅線。
天貓有完善的反爬和風(fēng)控策略,高頻抓取可能導(dǎo)致 IP 被封、賬號被限制。
建議個人學(xué)習(xí)時:

  • 降低頻率(sleep 隨機(jī) 2~5 秒)
  • 控制總頁數(shù)(≤5 頁)
  • 不用于商業(yè)盈利
  • 希望這篇小教程能幫你打開“動態(tài)網(wǎng)頁抓取”的大門,祝你編碼愉快
請登錄后查看

one-Jason 最后編輯于2025-09-17 17:45:15

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
109
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產(chǎn)品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復(fù)
回復(fù)
問題:
問題自動獲取的帖子內(nèi)容,不準(zhǔn)確時需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊

切換手機(jī)號登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服