当前位置:网站首页 >  教程

淘宝女王节Python实战:零基础搭建商品价格监控脚本

时间:2026年06月04日 22:25:02 来源:易频IT社区

一、开发环境搭建

在开始编写监控脚本之前,必须先配置好Python运行环境。本指南基于Python 3.8版本编写,兼容性最佳。请前往Python官网下载对应操作系统的安装包,安装时务必勾选"Add Python to PATH"选项,这能避免后续手动配置环境变量的麻烦。

安装完成后,打开命令行工具(Windows下为Win+R输入cmd,Mac下为Terminal),输入以下命令安装必要的第三方库。这些库分别用于发送网络请求、解析网页数据、执行定时任务和发送邮件。

pip install requests beautifulsoup4 schedule

如果下载速度过慢,建议使用国内镜像源进行安装:

pip install requests beautifulsoup4 schedule -i https://pypi.tuna.tsinghua.edu.cn/simple

安装成功后,保留命令行窗口备用,后续将直接在此运行脚本。

二、获取请求头关键信息

淘宝拥有严格的反爬机制,直接通过代码访问会被直接拦截。为了模拟真实用户访问,必须从浏览器中获取CookieUser-Agent。这是脚本能否成功运行的关键步骤,请严格按照以下顺序操作。

1. 使用Chrome浏览器打开淘宝网,并登录你的账号。
2. 在浏览器地址栏输入目标商品的URL,例如某款女王节促销商品的详情页。
3. 按下F12键打开开发者工具,点击顶部的"Network"(网络)标签页。
4. 刷新页面(F5),在Network列表中找到第一个请求(通常是商品ID.htm),点击选中。
5. 在右侧出现的Headers选项卡中,向下滚动找到Request Headers部分。
6. 复制完整的Cookie值(一长串字符串)和User-Agent值。

注意:Cookie具有时效性,如果脚本运行一段时间后报错提示登录失效,只需按照上述步骤重新获取Cookie并替换即可。

三、编写监控核心代码

新建一个名为monitor.py的文件,使用记事本或VS Code打开。我们将分模块编写代码,实现获取网页、提取价格和判断逻辑。

导入刚才安装的库并设置基础变量。将第二步获取的Cookie和User-Agent填入下方代码的对应位置。

```python import requests from bs4 import BeautifulSoup import schedule import time import smtplib from email.mime.text import MIMEText from email.utils import formataddr 配置区域 URL = "https://detail.tmall.com/item.htm?id=这里填入商品ID" COOKIE = "这里填入你复制的完整Cookie" USER_AGENT = "这里填入你复制的User-Agent" TARGET_PRICE = 200.00 设置你期望的心理价位 ```

获取当前价格函数

淘宝女王节Python实战:零基础搭建商品价格监控脚本

淘宝网页源码中,价格通常包含在特定的Class属性中。以下函数通过请求网页源码,使用BeautifulSoup库解析HTML结构,从而提取出当前的标价。

```python def get_current_price(): headers = { "Cookie": COOKIE, "User-Agent": USER_AGENT, "Referer": URL } try: response = requests.get(URL, headers=headers) response.raise_for_status() 检查请求是否成功 soup = BeautifulSoup(response.text, 'html.parser') 注意:淘宝DOM结构可能变动,这里使用常见的价格类名 如果抓取不到,需检查网页源码更新选择器 price_tag = soup.find('span', class_='tm-price') if price_tag: price_str = price_tag.get_text().strip().replace('¥', '').replace(',', '') return float(price_str) else: print("未找到价格标签,可能需要更新解析逻辑或Cookie失效") return None except Exception as e: print(f"获取价格出错: {e}") return None ```

四、配置邮件预警功能

当价格低于设定值时,我们需要脚本自动发送邮件通知。这里以QQ邮箱为例,演示如何配置SMTP服务。

1. 登录QQ邮箱,进入"设置" -> "账户"
2. 找到"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务",开启"IMAP/SMTP服务"
3. 按照提示发送短信后,系统会生成一个授权码,请务必复制保存,这个授权码就是后续代码中的邮箱密码。

在monitor.py文件中追加以下邮件发送函数:

```python def send_email(price): my_sender = '你的QQ@qq.com' 发件人邮箱账号 my_pass = '刚才生成的授权码' 发件人邮箱密码(授权码) my_user = '你的QQ@qq.com' 收件人邮箱账号,自己发给自己 try: msg = MIMEText(f'淘宝女王节好价预警!\n商品链接:{URL}\n当前价格:{price}\n目标价格:{TARGET_PRICE}', 'plain', 'utf-8') msg['From'] = formataddr(["淘宝监控助手", my_sender]) msg['To'] = formataddr(["", my_user]) msg['Subject'] = "价格跌破预警价!" server = smtplib.SMTP_SSL("smtp.qq.com", 465) server.login(my_sender, my_pass) server.sendmail(my_sender, [my_user,], msg.as_string()) server.quit() print("邮件发送成功") except Exception as e: print(f"邮件发送失败: {e}") ```

五、自动化调度与运行

我们需要将上述功能串联起来,并设置定时任务。为了不频繁请求淘宝导致IP被封,建议设置每30分钟检查一次。

在monitor.py文件末尾添加主程序逻辑:

```python def job(): print(f"开始检查价格... {time.strftime('%Y-%m-%d %H:%M:%S')}") price = get_current_price() if price: print(f"当前价格: ¥{price}") if price <= TARGET_PRICE: print(f"价格达标!发送预警邮件。") send_email(price) 发送后可以选择暂停监控或继续 else: print("价格未达标,继续监控。") 定时任务:每30分钟执行一次 schedule.every(30).minutes.do(job) if __name__ == '__main__': print("监控脚本已启动,正在等待...") 先执行一次 job() while True: schedule.run_pending() time.sleep(1) ```

六、脚本执行与维护

代码编写完毕后,回到命令行窗口,进入monitor.py所在的目录,执行以下命令启动脚本:

python monitor.py

看到"监控脚本已启动"的提示后,脚本即进入后台运行模式。窗口会实时打印每次检查的结果。如果此时商品价格发生变动并低于目标价,你的QQ邮箱将立即收到预警邮件。

常见问题排查:

  • 连接超时:请检查网络连接,或确认淘宝是否屏蔽了你的IP,建议尝试切换手机热点测试。
  • 解析失败:如果持续提示"未找到价格标签",说明淘宝更新了前端代码。请按F12查看当前价格的Class名称,并修改代码中soup.find部分的参数。
  • 登录失效:长时间运行后Cookie会过期,只需按第二步重新获取并替换代码中的COOKIE变量即可重启。

通过以上步骤,你已成功构建了一个自动化的淘宝女王节价格监控系统。这套逻辑不仅适用于淘宝,稍加修改Selector和Headers即可应用于京东、拼多多等其他电商平台,实现真正的高效抢购辅助。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图