码迷,mamicode.com
首页 > 其他好文 > 详细

「实例操作」抓取耐克中国官网数据转淘宝数据包-1 获取商品链接

时间:2016-11-10 19:35:13      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:ice   ipo   int   bug   pdo   开启   mba   pem   wax   

最近接了个单子,要抓耐克中国的数据,把里面的商品转化成淘宝数据包,可以直接上传宝贝

客户提出了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,这些商品可以认为是新品了

 

=======================================================

至此,第一阶段工作完毕,接下去更新第二阶段

 

「实例操作」抓取耐克中国官网数据转淘宝数据包-1 获取商品链接

标签:ice   ipo   int   bug   pdo   开启   mba   pem   wax   

原文地址:http://www.cnblogs.com/darkspr/p/6051659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!