「实例操作」抓取耐克中国官网数据转淘宝数据包-1 获取商品链接
最近接了个单子,要抓耐克中国的数据,把里面的商品转化成淘宝数据包,可以直接上传宝贝
客户提出了3个要求:
1:批量下载全网站商品;
2:定期更新网站新品;
3:批量更新淘宝库存,检查网站数据
这边先确定思路
第一是要抓取这些商品的列表,
第二是抓取单品的信息,
第三是把信息按照淘宝数据包格式输出。
这样就解决了第一个要求,
第二个邀请是抓取新品,这个要求可以这样理解,定期抓取所以链接,并保存下来,如果有的新的链接,那就是新品,
第三个要求更新库存,这个要有淘宝接口,我朋友那边有,借用下即可
==================================================
以上是需求的第一分析
接下去就是实际操作,打开网页,这里采用firefox+firebug进行分析
先选了一个小类目,鞋类的休闲鞋
男子 休闲 鞋类 (236)
有236个商品,首先查看商品链接格式
http://store.nike.com/cn/zh_cn/pd/classic-cortez-leather-qs-%E7%94%B7%E5%AD%90%E8%BF%90%E5%8A%A8%E9%9E%8B/pid-11296763/pgid-11491812
http://store.nike.com/cn/zh_cn/product/air-force-1-high-id-shoe/?piid=43206&pbid=215878983#?pbid=215878983
发现有2中格式,一种是pgid格式,pid是颜色,还有一种是ppid,pbid是颜色
不多说,先用urllib2.urlopen().read()来一发
#!/usr/bin/env python #coding:utf-8 import urllib2,urllib import re import time url = "http://store.nike.com/cn/zh_cn/pw/%E7%94%B7%E5%AD%90-%E4%BC%91%E9%97%B2%E7%94%9F%E6%B4%BB-%E9%9E%8B%E7%B1%BB/7puZoneZoi3?ipp=120" data = urllib2.urlopen(url).read()
print 了一下,问题不大,可以读取,接下去用正则匹配ppid和pgid,并去重,获取到了了39+20个,总共59个
回头看了下类目商品数,236个,看来没那么简单,源文件中的商品数量不全
这个时候使用firebug进行分析,首先开启
然后刷新页面,并且把页面拉到底
这个过程可以看见浏览器不停的发送请求,把最后一个商品链接复制一下进去搜索
ok,找到了,查看下请求链接
这里根据老司机经验,pn是页数,然后那个7pu的有点眼熟,wait a momonent,那不就是
看来那个是类目id,把这个链接复制到浏览器打开,ok,完美打开,urllib2.urlopen().read()来一发
ok,数据获取到了,这样看来就是通过这个接口来获取新的商品链接,核对了一下,总共有4页,分别获取piid和pgid,得到236个商品,
换了一个类目id测试并获取商品数量,结果完全和页面上一致,至此,获取商品链接这一步工作算是完成了
基于现在的进度,已经可以把新品更新脚本做出来了,只要把第一次获取到的商品id存起来,
下次再获取商品id,和之前的做比对,就可以获取新的商品id,这些商品可以认为是新品了
=======================================================
至此,第一阶段工作完毕,接下去更新第二阶段