本贴将学习一个抓取商品历史价格的案例。 目前,各大电商平台存在着同一商品价格不一的现象。商品历史价格爬虫可以获取同一商品在各个平台的历史价格,并通过历史价格预测出近期可能的降价空间。
目录
一、网页分析
电子商务的普及产生了大量的网上商店。用户在网上消费的时候,如果要购买一个产品,往往会选择价格最低的那个网上商店进行购买,由此产生了比价(Price Comparision) 网站。比价网站为消费者在网上找到最便宜、价格最合理的商品提供了极大的便利。
接下来,我们来看一下慢慢买比价网(慢慢买——购物比价网)的页面结构。
该网站需要登录才能使用,一次登录永久使用。在使用爬虫爬取数据前,需要提前登录。
1、分析查历史价的功能
在输入框输入需要查询的商品,这里以查询iPhone为例。 在页面功能标签页面,点击查历史价,会跳转到以下界面。
慢慢买比价网的历史价格都是基于该功能来查询商品的历史价格,我们复制一个商品网页链接看看。我们在京东上,打开一个商品信息,上面有一个网页地址,复制该地址。
接下来我们将复制的网页链接粘贴在查历史价网页的输入框,点击查询即可商品的历史价格和优惠情况。
因此,我们一种爬虫实现方式就是基于获取商品网页链接然后将其粘贴在查询历史价网页的查询栏中来查询历史价。
2、分析搜索框功能
在比价网首页输入iPhone,回车。如下图所示:
这里我们可以看到有各种各样的iPhone商品的情况,有当前价格、电商平台、评论条数等。这里我们还可以看到价格旁边有一个波浪箭头,我们把鼠标移到这个箭头可以看到一下情况:(有些箭头是不会立刻弹出这个历史价格的,可能会等到1-2分钟,才会出现,这是因为网站有些历史价格做传输响应服务较慢。但多试一会,会有箭头弹出的。)
这里会弹出一个历史价格,我们采用开发者工具(按F12键)来看看。
因为,这里采用的是Ajax异步加载,把鼠标移到波浪箭头的位置,等弹出历史价格图后,在开发者工具的NetWork中可以看到有一个数据传输响应信息条目,打开这个条目可以看到dataPrice。这里就是商品的历史价格数据和优惠情况,所以这又一种爬取方式就是获取这个dataprice,把里面的数据提取保存下来。
接下来,我们来看一下另一种爬取方式(这个是上面说到的是基于查历史价的功能)。继续以iPhone为例,我们通过开发者工具的左上角有一个箭头,将它移到波浪箭头上,点击一下,会将这个波浪箭头的源代码所在位置显示出来,如下图所示。