欢迎光临
我们一直在努力

淘宝搜索结果页批量爬取实战

在电商数据分析、竞品调研、价格监控等场景中,批量获取淘宝搜索结果页数据是高频刚需。淘宝采用JS 动态渲染 + 强反爬机制,直接用 requests 请求无法获取完整数据,本文基于 Python+Selenium 实现稳定、可落地的批量爬取方案,覆盖搜索、翻页、数据提取、存储全流程。

一、实战目标与技术选型

1. 爬取目标

批量抓取淘宝搜索结果页商品标题、价格、销量、店铺名、商品链接,支持多关键词、多页码自动爬取,数据导出为 CSV 用于分析。

2. 技术栈

  • Selenium:模拟浏览器操作,解决 JS 渲染页面抓取问题
  • BeautifulSoup:解析页面结构,提取商品数据
  • pandas:数据整理与 CSV 存储
  • ChromeDriver:Chrome 浏览器驱动,匹配本地 Chrome 版本

二、环境准备

1. 安装依赖库

bash

运行

pip install selenium beautifulsoup4 pandas

2. 配置 ChromeDriver

  • 查看本地 Chrome 版本,下载对应版本 ChromeDriver
  • 将 ChromeDriver.exe 放入 Python 根目录,或代码中指定路径
  • 3. 浏览器优化配置(反爬必备)

    python

    运行

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options

    # 配置Chrome选项
    chrome_options = Options()
    # 无界面模式(可选,正式爬取开启)
    # chrome_options.add_argument('–headless')
    chrome_options.add_argument('–disable-gpu')
    chrome_options.add_argument('–no-sandbox')
    # 禁用图片加载,提升速度
    chrome_options.add_argument('blink-settings=imagesEnabled=false')
    # 添加用户代理,模拟真实用户
    chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36')

    # 启动浏览器
    driver = webdriver.Chrome(options=chrome_options)

    三、核心爬取逻辑

    1. 淘宝搜索页访问

    构造搜索 URL,自动输入关键词并搜索:

    python

    运行

    def search_taobao(keyword):
    """淘宝搜索函数"""
    url = f'https://s.taobao.com/search?q={keyword}'
    driver.get(url)
    # 等待页面加载
    driver.implicitly_wait(10)
    print(f"正在搜索:{keyword}")

    2. 单页数据提取

    解析页面 HTML,提取商品核心字段:

    python

    运行

    from bs4 import BeautifulSoup
    import pandas as pd

    def parse_page():
    """解析单页商品数据"""
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    items = []
    # 定位商品列表(淘宝搜索页商品节点)
    goods_list = soup.select('.item.J_MouserOnverReq')

    for good in goods_list:
    try:
    # 商品标题
    title = good.select_one('.title').get_text(strip=True)
    # 商品价格
    price = good.select_one('.price').get_text(strip=True)
    # 销量
    sales = good.select_one('.deal-cnt').get_text(strip=True)
    # 店铺名
    shop = good.select_one('.shop').get_text(strip=True)
    # 商品链接
    link = good.select_one('.J_ClickStat')['href']
    if not link.startswith('http'):
    link = 'https:' + link

    items.append({
    '标题': title,
    '价格': price,
    '销量': sales,
    '店铺': shop,
    '链接': link
    })
    except:
    continue
    return items

    3. 自动翻页爬取

    支持指定页码批量抓取,避免频繁请求触发反爬:

    python

    运行

    import time

    def crawl_by_page(keyword, max_page=3):
    """批量翻页爬取"""
    all_items = []
    search_taobao(keyword)

    for page in range(1, max_page+1):
    print(f"正在爬取第{page}页")
    # 解析当前页
    items = parse_page()
    all_items.extend(items)
    print(f"第{page}页抓取到{len(items)}条数据")

    # 翻页操作
    try:
    # 点击下一页按钮
    next_btn = driver.find_element_by_css_selector('.J_Ajax.next')
    next_btn.click()
    # 延时等待,防止被封
    time.sleep(3)
    except:
    print("已到最后一页")
    break

    return all_items

    4. 数据存储

    将爬取数据保存为 CSV 文件,方便后续分析:

    python

    运行

    def save_data(items, keyword):
    """保存数据到CSV"""
    df = pd.DataFrame(items)
    filename = f'淘宝_{keyword}_商品数据.csv'
    df.to_csv(filename, index=False, encoding='utf-8-sig')
    print(f"数据已保存至:{filename}")

    四、完整运行代码

    python

    运行

    # 主函数
    if __name__ == '__main__':
    # 配置参数
    KEYWORD = '笔记本电脑' # 搜索关键词
    MAX_PAGE = 3 # 爬取页数

    # 启动爬取
    data = crawl_by_page(KEYWORD, MAX_PAGE)
    # 保存数据
    save_data(data, KEYWORD)
    # 关闭浏览器
    driver.quit()
    print("爬取完成!")

    五、反爬应对策略(关键)

    淘宝反爬机制严格,以下策略能大幅提升爬取稳定性:

  • 添加延时:每页爬取后等待 2-5 秒,禁止高频请求
  • 模拟人工操作:避免快速点击、快速翻页
  • 登录状态:建议手动登录淘宝,保留 Cookie,提升权限
  • 限制页数:单次爬取不超过 10 页,分时段爬取
  • 异常处理:增加 try-except 捕获报错,避免程序中断
  • IP 防护:大规模爬取需使用代理 IP,避免单 IP 被封
  • 六、扩展优化方向

  • 异步爬取:结合 aiohttp + 异步浏览器,提升爬取效率
  • 多关键词批量:读取关键词列表,循环爬取多个品类
  • 数据清洗:过滤无效商品、统一价格格式、提取销量数字
  • 数据库存储:替换 CSV 为 MySQL/MongoDB,支持海量数据存储
  • 定时任务:结合 schedule 实现每日自动爬取,监控价格变化
  • 七、合规声明

    本教程仅用于学习爬虫技术,爬取前请遵守《淘宝 robots 协议》及相关法律法规,禁止用于商业用途、恶意爬取、数据倒卖等行为,合规使用爬虫技术。

    赞(0)
    未经允许不得转载:171主机测评 » 淘宝搜索结果页批量爬取实战
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址