当前位置: 首页 > news >正文

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

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

一、实战目标与技术选型

1. 爬取目标

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

2. 技术栈

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

二、环境准备

1. 安装依赖库

bash

运行

pip install selenium beautifulsoup4 pandas

2. 配置 ChromeDriver

  1. 查看本地 Chrome 版本,下载对应版本 ChromeDriver
  2. 将 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("爬取完成!")

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

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

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

六、扩展优化方向

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

七、合规声明

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

http://www.jsqmd.com/news/427750/

相关文章:

  • amfori BSCI官方授权审核机构名单
  • 微信公众号文章批量采集与去重:高效合规的内容获取全攻略
  • AI Agent 外包开发流程
  • 少走弯路:9个AI论文写作软件测评!MBA毕业论文+科研写作必备工具推荐
  • Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
  • 【关注】数字化需要发生在企业的方方面面吗?
  • 本地调试适配,MonkeyCode 一键接入个人开发设备
  • 导师推荐! AI论文软件 千笔·专业论文写作工具 VS 笔捷Ai,专科生专属神器!
  • 2026年质量好的广州年会活动策划/美陈设计活动策划客户推荐榜 - 品牌宣传支持者
  • 2026年可靠的工厂环保咨询/项目环保咨询行业优选 - 品牌宣传支持者
  • 虚拟线程 的 用法、使用场景 和 注意事项
  • 交稿前一晚!9个降AIGC软件测评:专科生降AI率必备指南
  • 探寻有实力的生物医药交替传译公司,价格对比后哪家更靠谱 - 工业推荐榜
  • 2026年有实力的餐饮设计顾客口碑推荐 - 品牌宣传支持者
  • 某经开区“十五五”工业互联网平台与产业大脑建设方案深度拆解:从顶层设计到落地实战(WORD)
  • 2026年口碑好的茶饮喝茶空间/新式茶饮喝茶茶馆最新TOP推荐 - 品牌宣传支持者
  • 救命神器!AI论文软件 千笔AI VS speedai,专科生专属写作利器!
  • 2026年高新技术企业专利申请专业制造厂家推荐 - 品牌宣传支持者
  • 横评后发现!抢手爆款的降AIGC网站 —— 千笔·降AI率助手
  • 2026年口碑好的上海液冷系统IDCE数据中心展/上海智能运维IDCE数据中心展专业推荐 - 品牌宣传支持者
  • 2026年知名的广州板材品牌设计/广州五金行业品牌设计精英推荐 - 品牌宣传支持者
  • 2026年热门的赣州装修公司全屋定制/赣州装修公司别墅装修优质企业推荐 - 品牌宣传支持者
  • 零基础入门:PETRV2-BEV模型Linux环境部署全指南
  • 计算机毕业设计springboot基于的地铁综合服务管理系统的设计与实现 基于SpringBoot的城市地铁运营服务一体化平台设计与实现 SpringBoot框架下的城市轨道交通数字化管理系统开发
  • ChatGLM3-6B入门必看:开源大模型本地化部署完整流程
  • 2026年知名的视频会议SDK/私有化视频会议行业推荐及选型指南 - 品牌宣传支持者
  • 微前端在项目中常见的问题
  • 2026最新江西老人护理公司TOP5评测!专业家政服务标杆榜单发布,构建暖心养老服务体系 - 十大品牌榜
  • 2026年质量好的1500v高压直流接触器/电池包高压直流接触器高口碑品牌推荐 - 品牌宣传支持者
  • JDK 21 新特性