楼主: Lay.Terry
23408 64

[数据业务] 【零一】如何用代码爬抓电商数据(附淘宝API调用实例)   [推广有奖]

已卖:306份资源

学术权威

21%

还不是VIP/贵宾

-

威望
4
论坛币
214342 个
通用积分
1019.5372
学术水平
427 点
热心指数
197 点
信用等级
399 点
经验
69736 点
帖子
771
精华
50
在线时间
2606 小时
注册时间
2011-8-29
最后登录
2024-2-19

楼主
Lay.Terry 在职认证  发表于 2014-4-24 11:51:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
论坛近期就行业推出的一系列免费公开课也是得到了不少坛友的支持,本周推荐公开课如下:
4.24(周六) 【线下公开课】  中国人民大学 SAS安装及学习交流会      
已结束
4.25 (周日)【线上直播公开课】 淘宝数据分析那点事儿               

入口:http://show.quanshi.com/showdemo/index/20140425091/login(用报名时的邮箱登录即可) 如果错过了直播,一个月内可以观看录播,我们会尽快发布。


做数据分析,没有数据,是分析师的硬伤。但不完全是硬伤,没有数据其实也可以利用逻辑思维能力来分析推断,这个以后有机会跟大家分享。今天,我要讲怎么用代码获取数据。

没办法很详细地讲,只能大致上讲解一下,然后给个实例。



工具:Excel2013(用哪个版本都是可以的)

语言:Visual Basic for Applications(简称VBA,集成在Office套件里面的开发程式,有些精简版或者用户在安装的时候取消了VBA套件,就会无法启动)


我原本学的是硬件开发,只会汇编,写这类程序不是我擅长的,而且是自学的只有半桶水的状态。我写的程序都有很大的优化空间,如果有更高效的方法,请不吝指教。


实例一:获取淘宝搜索结果页宝贝信息

如下图,搜索了关键词“T恤”后,会看到类似这样的结果,我想把宝贝标题和价格,排名位置等信息给抓取到本地数据库或者表格里面。



我们右击一下页面,点查看源文件



看到的结果如下



这个是网页源码,我要介绍的方法,就是通过网页请求,获取这里的源码,然后再对源码进行解析。

观察源码这个步骤很重要,在这里会决定数据要怎么拿。

比如要取出标题

标题是在 title= 后面的一串字符,又以 > 符号结束。把这两个看成是分隔符的话,那么标题就藏在两个分隔符的中间。

那么,思路上,只要知道这两个分割符的位置,那么,就可以取出标题了。

下面,让我们开始实践

首先,我们准备好工具,在excel的文件--选项--自定义功能区--主选项卡,把开发工具打钩。




然后进入vba编程环境



插入模块



可以在这些模块里面写程式,下图我一口气插入了4个模块,我在其中一个模块上面写入代码即可。



然后写入代码(这里是截图,在文章最后,会附上文本版的代码)


大家注意到,在第四行,有个很长很长的一串

URL = "http://s.taobao.com/search?q=T%D0%F4&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=1.6659421.754896237.1&initiative_id=tbindexz_20140301"

大家只要把这个链接替换掉就可以了。这个链接,是搜索后的结果页。可以按照下文的规则来拼凑,在淘宝敲入关键词,然后选择好属性或者排序方式后,把网址贴过来,然后运行这段代码就可以了。下图是运行按键的位置



运行后得到的结果



这段代码的解释,我都注释在代码里头了。其实可以把这个过程写成更加智能。网址的q=后面的T%D0%F4是T恤的uncode码,直接出现在网址里头,其实只要写多一个转码程序,可以直接在excel的工作表或者窗体里面输入关键词进行搜索。

另外,利用参数sort来指定排名类型,如

sort=default是综合排名

sort=renqi-desc是人气排名

sort=sale-desc是销量排名

s=40是页码,公式是40*(页码-1),非常明显,s=40就是第2页

直接利用代码组合网址,如http://s.taobao.com/search?q=T%D0%F4&sort=renqi-desc&s=40(复制到淘宝看下结果哦)

这是T恤下的人气排名第二页的搜索结果

再做个查询按键,就变成软件了。

如果用时间来控制,可以让程序每隔几分钟或者几小时运行一次,达到自动爬抓数据的目的。

这部分我就不详说了,感兴趣的自己研究。

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

实例二:用API拿数据的方法

首先,要到api.taobao.com注册开发者身份,拿到app key 和 app secret



然后,根据开发文档的API列表:open.taobao.com/api/api_list.htm,查找相应功能的api。那么下面我用taobao.itemcats.get,来做例子

首先,要阅读这个API的说明文档,知道这个接口的调用参数,



然后可以到沙箱里面测试http://api.taobao.com/apitools/a ... taobao.itemcats.get,可以观察返回的结果,我们要的数据一样在两个分隔符的中间,只要提取出来即可。



最后写代码即可,这段代码,只要把app_key和secret替换成自己的,就可以运行了。



运行结果是把女装(parent_cid是16)的子类目代码和对应的子类目名称获取下来



其他电商平台,如一号店等,原理都是一样的。


本文章的文件依然在我的网盘中,自己去拿吧!

链接:http://pan.baidu.com/s/15jAdv 密码:bon1


















二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:电商数据 如何用 API Applications Application 淘宝 电商 如何

已有 7 人评分经验 学术水平 热心指数 信用等级 收起 理由
cqshallwe + 1 + 1 + 1 精彩帖子
过鑫影客 + 1 + 1 精彩帖子
oyjy1986 + 1 + 1 + 1 精彩帖子
515563367 + 1 + 1 + 1 精彩帖子
zzbyy + 1 + 1 + 1 大神额
客初 + 80 + 2 + 3 精彩帖子赞呀
我的素质低 + 60 + 2 + 3 精彩帖子

总评分: 经验 + 140  学术水平 + 9  热心指数 + 11  信用等级 + 4   查看全部评分

本帖被以下文库推荐

沙发
apple-developer 发表于 2014-4-24 16:32:48
顶。。。。厉害!!!

藤椅
青青子矜 发表于 2014-4-24 18:54:52
谢谢  感觉不是很难呀  以后琢磨下
手空空,无一物 路遥遥,无止境

板凳
我的素质低 学生认证  发表于 2014-4-24 19:05:00
老师你有出这类的书吗???   
心晴的时候,雨也是晴;心雨的时候,晴也是雨!
扣扣:407117636,欢迎一块儿吐槽!!

报纸
dongfangsy 发表于 2014-4-24 21:00:51
收入囊中

地板
客初 企业认证  学生认证  发表于 2014-4-24 22:17:21
管理员,怎么不发到我们Excel版来呀。Excel版欢迎您!

7
pissenlit阿li 发表于 2014-4-24 23:51:16 来自手机
Lay.Terry 发表于 2014-4-24 11:51
论坛近期就行业推出的一系列免费公开课也是得到了不少坛友的支持,本周推荐公开课如下:
4.24(周六) 【线 ...
看看

8
pissenlit阿li 发表于 2014-4-24 23:51:49 来自手机
Lay.Terry 发表于 2014-4-24 11:51
论坛近期就行业推出的一系列免费公开课也是得到了不少坛友的支持,本周推荐公开课如下:
4.24(周六) 【线 ...
谢谢楼主

9
zyyshadow0911 发表于 2014-4-25 00:03:17
看看的

10
luying1981 发表于 2014-4-25 00:05:55 来自手机

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 06:50