【爬虫】Python实现爬取淘宝商品信息(超详细)

【爬虫】Python实现爬取淘宝商品信息(超详细)

【更新说明】项目代码已在2025年11月23日16点30进行更新,如有问题可评论或私信与我联系!

目录

项目介绍

代码部分

引用第三方库

全局定义

主函数

爬虫主函数代码

搜索“关键词”

翻页函数代码

​编辑

获取商品列表信息代码

完整代码

项目介绍

项目使用ChromeDriver插件,基于Python的第三方库Selenium模拟浏览器运行、PyQuery解析和操作HTML文档,获取淘宝平台中某类商品的详细信息(商品标题、价格、销量、商铺名称、地区、商品详情页链接、商铺链接等),并基于第三方库openpyxl建立、存储于Excel表格中。

【说明】若允许代码出现翻译错误、代码能正常运行但是Excel没有数据等问题,可能是淘宝网页更新了父元素类选择器的缘故,大家可以参照教程检查一下元素是否更新;若网页元素更新,则可参照教程自行修改;【爬虫】教你如何获取淘宝网页父元素类选择器标签(超详细)-CSDN博客

效果预览:

代码部分

引用第三方库

# 代码说明:
'''
代码功能: 基于ChromeDriver爬取taobao(淘宝)平台商品列表数据
输入参数:  KEYWORLD --> 搜索商品“关键词”;
          pageStart --> 爬取起始页;
          pageEnd --> 爬取终止页;
输出文件:爬取商品列表数据
        'Page'        :页码
        'Num'         :序号
        'title'       :商品标题
        'Price'       :商品价格
        'Deal'        :商品销量
        'Location'    :地理位置
        'Shop'        :商品
        'IsPostFree'  :是否包邮
        'Title_URL'   :商品详细页链接
        'Shop_URL'    :商铺链接
        'Img_URL'     :图片链接
'''

# 声明第三方库/头文件
from selenium import webdriver
from selenium.***mon.exceptions import TimeoutException
from selenium.webdriver.***mon.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from pyquery import PyQuery as pq
import time
import openpyxl as op               #导入Excel读写库

【第三方库】主要运用到PyQuery、selenium、openpyxl等Python的第三方库;如若缺失,使用pip指令安装即可。

pip install pyquery
pip install selenium
pip install openpyxl

【ChromeDriver下载与安装】若运行过程中出现如下问题,可能是ChromeDriver版本与Chrome版本不一致导致,需要对ChromeDriver进行更新。ChromeDriver下载与安装:手把手教你,ChromeDriver下载与安装

全局定义

输入初始参数:

  • 爬取商品的关键词KEYWORD
  • 爬取网页的起始页pageStart
  • 爬取网页的终止页pageEnd
# 全局变量
count = 1                                   # 写入Excel商品计数

KEYWORD = input('输入搜索的商品关键词Keyword:')# 要搜索的商品的关键词
pageStart = int(input('输入爬取的起始页PageStart:'))# 爬取起始页
pageEnd = int(input('输入爬取的终止页PageEnd:'))# 爬取终止页

# 启动ChromeDriver服务
options = webdriver.ChromeOptions()
# 关闭自动测试状态显示 // 会导致浏览器报:请停用开发者模式
options.add_experimental_option("excludeSwitches", ['enable-automation'])
# 把chrome设为selenium驱动的浏览器代理;
driver = webdriver.Chrome(options=options)
# 反爬机制
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",
                       {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})
# 窗口最大化
driver.maximize_window()
driver.get('https://s.taobao.***/')
# wait是Selenium中的一个等待类,用于在特定条件满足之前等待一定的时间(这里是20秒)。
# 如果一直到等待时间都没满足则会捕获TimeoutException异常
wait = WebDriverWait(driver,20)

主函数

1、建立Excel表格,并设置第一行(表头);

2、调用爬虫主函数Crawer_main,启动爬虫程序;

3、输出.xlsx格式文件。

if __name__ == '__main__':
    # 建立Excel表格
    try:
        ws = op.Workbook()                                  # 创建Workbook
        wb = ws.create_sheet(index=0)                       # 创建worsheet
        # Excel第一行:表头
        title_list = ['Num', 'title', 'Price', 'Deal', 'Location', 'Shop', 'IsPostFree', 'Title_URL',
                      'Shop_URL', 'Img_URL']
        for i in range(0, len(title_list)):
            wb.cell(row=count, column=i + 1, value=title_list[i])
        count += 1  # 从第二行开始写爬取数据
    except Exception as exc:
        print("Excel建立失败!Error:{}".format(exc))

    # 开始爬取数据
    Crawer_main()

    # 保存Excel表格
    data = time.strftime('%Y%m%d-%H%M', time.localtime(time.time()))
    Filename = "{}_{}_FromTB.xlsx".format(KEYWORD,data)
    ws.save(filename = Filename)
    print(Filename + "存储成功~")

(输入)效果预览:

爬虫主函数代码

1、ChromeDriver服务请求淘宝(https://www.taobao.***)服务,模拟浏览器运行,找到“输入框”输入关键词KEYWORD,并点击“搜索”按键;

2、若弹出登录窗口,使用手机“淘宝”APP,扫码登录(如图所示);

【注意】抓紧时间完成登录,若出现error,则重新运行代码,尽快登录;超时可能出现error

3、判断PageStart是否为1;若PageStart不为1,跳转至PageStart所在页;

4、调用get_goods获取起始页PageStart的商品列表信息;

5、调用page_turning翻页进行翻页,并爬取第PageStart+1页到第PageEnd页商品信息。

# 爬虫main函数
def Crawer_main():
    try:
        # 搜索KEYWORD
        search_goods()
        # 判断pageStar
转载请说明出处内容投诉
CSS教程网 » 【爬虫】Python实现爬取淘宝商品信息(超详细)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买