forthespada / E-commerce

国内三大电商网站,某东、某里、某美电商网站全站商品以及评论数据抓取,共计9000W余条数据。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

------2022.01.23更新--------

鉴于自己的代码被人拿去获利,这违背了我的分享初衷,现全部清空个人以前分享的抓取代码

京东、苏宁、国美全站数据抓取

主要的数据包括商品价格、名称、类别、描述,以及评论文本、评论时间、点赞数、评论人等信息。

最终抓取1000W的商品URL,其中抓了大概8000W的商品数据和评论数据,后期数据量够了就没再做下去了。

知乎上有详细一点的介绍,如有需要请移步:https://zhuanlan.zhihu.com/p/146265932

1、数据去重问题

全部的数据前期是采用布隆过滤器进行去重的,但后来发现并不需要这么麻烦,后用了一个小技巧进行去重。

因为每种商品是有一个大类的,比如手机里的苹果和水果里的苹果是不一样的,所以这两个苹果虽然一样,但是商品ID属于不一样的类别中的。借助这个小技巧进行URL的去重,自然这两个商品的信息价格包括评论都是不一样的了。同样的**也被用在评论中,用这个小技巧做到了数据去重问题。

2、网站介绍

京东

整体采用 IP代理池 + Seleium + MongoDB 做的,其中京东的商品价格做了二次隐藏,所以价格API接口需要自己用F12去查找,具体可以看一下JD的价格模块。

前期JD是没有反扒措施的,所以也比较友好,但是大概19年12月末就加上IP限制了,过快过多请求会直接封IP,没办法,后期只能上IP池了。

苏宁、国美

这两个网站都相对友好一点,反扒没有那么严重,直接采用 Request + MySQL + MongoDB做的, 会用两个数据库是因为实验室总是断电,我又没有想到好的断电再续方式,只好先把全站商品URL保存下来,存到MySQL中去,然后再从MySQL中拿URL挨个抓取的。

只好用这种傻瓜式的方法了,哈哈~

后面的时候,还借助JD的一个部分手机数据,使用Neo4J图形数据库做了一个可视化的小型手机知识图谱

About

国内三大电商网站,某东、某里、某美电商网站全站商品以及评论数据抓取,共计9000W余条数据。