Python爬虫爬取京东内存条数据并作简单分析
前言
本文知乎链接
这段时间想加内存条了,于是想着把京东的内存条数据爬下来,看看行情,光说不做假把式,说干就干(`・д・´) 。
得到的数据
京东搜索笔记本内存条按销量排行,将得到的内存条数据都爬下来,保存到MySQL数据库中,下图是查询结果。由于按销量排行京东会去掉大部分商品信息,所以得到的数据比直接搜索笔记本内存条得到的数据少得多。
导出数据为CSV,在Excel中的视图
爬取过程
下面在京东搜索笔记本内存条并按销量排序的第一页
本来是打算直接根据这个URL来爬数据,结果发现京东一页数据分两次加载,开始显示前30个商品,当滚动条下拉之后然后再异步加载后30个商品,于是这个方法只能作废了。
好在天无绝人之路,当我在翻页的时候发现了一些有趣的东西
下面是第二页前30个商品与某个神秘的请求(直接打开链接是什么都没有的!),继续往下滑,后30个商品也会有一个类似的神秘请求。
右边一堆乱码中可以清楚看到价格,继续往下翻,价格和左边都对得上,切换到Response之后发现这个请求返回的HTML中就包含了商品的各项数据(名称、店铺、价格等等),简单分析这个链接的格式就能通用了,excited!接下来就简单了,脚本细节就不多赘述了,直接看代码就可以了。
简单分析
点开上面的链接可以查看对比图,画图用的是echarts
各店铺所占比例
前六个店占了3/4+,尤其是第一个鼎信电脑办公专营店有725条数据,占了1/4+,简直可怕。
商品名词云
根据所有商品名做的词云图,出现频率高的词汇一目了然,这里我有点不懂的是联想/Lenovo这两个词为啥频率这么高…
不同容量内存条所占比例
可以看出大多数人买的是8G和4G,最小竟然有512M有点吃惊(´(ェ)`)
内存条价格区间
这里解释一下这个图,比如左上那个点(400, 699),意思是在300-400这个价格区间有699件商品,也就是说300-400这个价格区间内内存条卖的最好(应该可以这么理解吧)
源码:LewisTian/RAM-JD,感觉我好像重写了一遍README哇
上面有不清楚的地方也可以看README,然后使用方法在README中也说的很清楚了,欢迎pr、fork、star