因为新冠肺炎的关系,我所在的公司面临业务转型,所以在电商采集这一块,可能就终止了。
http://api.herobuy.com/ 接口项目就做个总结,留个念想。
背景
apiHerobuy项目是用于公司做逆向海淘(海外代购国内商品)业务,主要是通过实时解析国内多个大型电商的商品信息,
让海外的用户轻松购买国内的(淘宝、天猫、京东、1688等等的电商大头)商品。
但是由于最近的海外 新冠肺炎(英文︰COVID-19)疫情严重,海外的用户购买力下降,加上进出口限制更加严格等问题,
导致这方面的业务已经开展不下去了,于是公司代购业务面临转型,而该解析项目也就终止了。
于是,就这个项目做一些总结。毕竟,都是我一个人去完成的,就像自己的孩子一样..挺可惜的
项目展示
扉页
登录
注册
信息总览
菜单总览
爬虫运行管理
爬虫封装&部署
cookies池,账户信息管理
技术栈
包含但不限于以下技术栈..太多琐碎的了,就列举几个比较大的。
- Django
- Redis
- Mongodb
- Scrapy
- Scrapy-redis
- Scrapyd
- Docker
- uwsgi
- Nginx
- Boostrap4
- JQuery
- AdminLTE
- Pyppeteer
- Requests
- Celery
- DRF
- Linux-Ubuntu18.04
- 代理池
- cookies池
- 模拟登录
- asyncio
爬虫包含
京东scrapy:
1
2
3
4
5jdItems:商品详情爬虫
jdShop:商家商品爬虫
jdSearch:商品搜索爬虫
jdSearchm:商品搜索手机版爬虫
兼容:京东大药房、一号店、拍拍等等京东旗下淘宝(天猫)scrapy:
1
2
3tbItems:商品详情爬虫
tbShop:商家商品爬虫
tbSearch:商品搜索爬虫1688scrapy:
1
2
31688Items:商品详情爬虫
1688Shop:商家商品爬虫
1688Search:商品搜索爬虫
代理池
免费代理
1
2
3使用 jhao104/proxy_pool 搭建的代理池,主要用于解决代理池从无到有的问题。
算是代理池备用方案,将其内嵌到了apiherobuy中,并作了接口封装转发。
该项目本身也有易扩展的优点,而且支持使用redis,跟apiherobuy技术栈契合。付费代理阿布云
1
2
3大型采集使用免费代理终归是不够的。
所以还购买了阿布云代理,并开发有关的scrapy中间件,在中间件里面
apiherobuy也做了一层代理接口,方便其他外部项目的调用
cookies池
pyppeteer 模拟登录 cookies池
1
2
3
4使用django+celery+asyncio异步处理的组合来达到使用pyppeteer模拟登录淘宝的目的。
登录成功的cookies会被入库保存,使用的时候通过有关接口调用即可,
支持参数动态切换对应账号cookies。
带有自动和手动cookies有效性检测。nodeJS Koa服务接口 处理JS逆向
1
计划中的东西,但是项目已经终止
工作流程简述
1 | lete/herobuy 电商后端 -> apiherobuy接口(检查mongodb是否已存在或已过时) -> |