Price-Monitor:电商价格监控
Python3+Requests/Selenium+Sqlite/Mysql+免费代理池/代理接口
目前网站已开放:访问电商价格监控平台:https://pricemonitor.online/便可体验。
实现功能:
【功能一】自定义商品监控:设置商品ID和预期价格,当商品价格【低于】设定的预期价格后自动发送邮件提醒用户。
【功能二】品类商品订阅:用户订阅后,该类降价幅度大于7折的【自营商品】会被选出并发送邮件提醒用户。
申明:本项目仅限于爬取网上公开可见的商品信息,请勿用于任何商业用途。
该库仅为爬虫模块代码,网站前后端代码暂时未开源,采用的是Springboot+React,请关注博客,之后会另开新库开源。
- Selenium + Headless Chrome爬取
- 商品副标题/商品历史价格爬取
- 京东卡券价格,京东精选价格爬取
持续更新中
- 代理池重构,单独检验代理对电商网站可达性
- 爬虫采用协程库,提高采集效率
- 支持更多的代理接口:免费代理,付费代理,vps拨号代理
- 使用Springboot代替Django作为网站后台
- 商品副标题抓取,PLUS会员价格
- 商品历史价格
- Selenium + PhantomJS/Headless Chrome 爬取
- 更方便的添加监控商品
- Docker一键部署(即将更新)
- 支持亚马逊中国,天猫,淘宝等商城
主要包含以下库:
- requests
- gevent
- lxml
- selenium(可选)
可以使用项目自带的requirements.txt安装环境
pip install -r requirements.txt
python PriceMonitor/create_db.py
可以使用 sqlitedatabasebrowser查看数据库,添加用户和商品。
也可以通过conn_sql.py里运行现成代码添加用户和商品:
add user named 'test'
sql.write_user('test', '404013419@qq.com')
add test item
sql.write_item(2777811, '10', 1)
简易教程请查看:设置发件邮箱
2.1 开启代理池,采用proxy_factory基于redis的简单代理工厂,感谢作者ShichaoMa。
启动redis代理池后,修改CONFIG.py的设置:
PROXY_CRAWL = 1
PROXY_POOL_IP = "127.0.0.1" # Your redis server ip
CRAWL_TIME = 10 # Monitor sleep time, if not using proxy, CRAWL_TIME > 1800 recommended.
PROXY_CRAWL = 0
PROXY_POOL_IP = "127.0.0.1" # Your redis server ip
python Pricemonitor/main.py
-
docs:文档
-
PriceMonitor
-
CONFIG.py: 常用参数
-
create_db.py: 创建数据库
-
conn_sql.py: 数据操作库
-
logger.conf: 日志参数
-
proxy_(js).py: 代理(二选一,默认proxy.py)
-
crawler_selenium/js.py: 爬虫(二选一,默认crawler_selenium.py)
-
mailbox.txt: 邮箱参数
-
mail.py: 邮件模块
-
monitor_main_(js).py: 程序入口(二选一,默认monitor_main.py)
-
-
requirements.txt: 安装依赖
- Issue
- Monitor price changes for items at JD.com, users could set price for specific item. Once the price is lower than excepted, the server will send an e-mail to user.