1.举例:首页我们有一个起始url:https://goodbaby.tmall.com/shop/view_shop.htm?spm=a230r.7195193.1997079397.2.3RayhH,我们要采取的是它里面所有宝贝,按销量排序,如图:
点击进去,我们可以看到列表页的链接:
我们查看源代码,可以发现淘宝的商品数据藏在js里面的:
我们找到他的接口 ,直接发起请求,从Headers直接找到他的url,然后对它发起请求,把里面的p改一下,p代表的是当前页数,遍历他的页数。
2.封装接口代码如下:
2.1请求方式:HTTP POST GET
2.2请求参数:
请求参数:shop_id=433655136&page=1&sort=
参数说明: shop_id:shop_id page:页码
sort:排序[new,bid,sale]
(new 新品,bid:价格,sale:销量,bid加_前缀为从大到小排序)
2.3公共参数
名称 | 类型 | 必须 | 描述 |
key | String | 是 | 调用key(必须以GET方式拼接在URL中) |
secret | String | 是 | 调用密钥 (复制:Taobaoapi2014 ) |
api_name | String | 是 | API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等] |
cache | String | 否 | [yes,no]默认yes,将调用缓存的数据,速度比较快 |
result_type | String | 否 | [json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读 |
lang | String | 否 | [cn,en,ru]翻译语言,默认cn简体中文 |
version | String | 否 | API版本 (查看接口调用示例) |
2.4.请求代码示例,支持高并发请求(CURL、PHP 、PHPsdk 、Java 、C# 、Python...)
# coding:utf-8
"""
Compatible for python2.x and python3.x
requirement: pip install requests
"""
from __future__ import print_function
import requests
# 请求示例 url 默认请求参数已经做URL编码
url = "https://api-gw.Taobaoapi2014.cn/taobao/item_search_shop/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&shop_id=433655136&page=1&sort="
headers = {
"Accept-Encoding": "gzip",
"Connection": "close"
}
if __name__ == "__main__":
r = requests.get(url, headers=headers)
json_obj = r.json()
print(json_obj)
2.5响应参数
这是最后爬取的效果: