环境:python3.6
目的:根据关键词在淘宝1688拼多多京东等电商平台上搜索商品,并将商品的商品ID,商品url等页面上有的信息抓取下来。
首先,我们打开首页,输入关键词:莫代尔裤女。
点击找一下,后会跳转到商品页面,如下图所示↓↓↓
接下来我们不要急着爬这些商品数据,我们要找的是这些商品的分类目录地址。谷歌浏览器右击检查页面,仔细观察会发现,每个分类的商品都有对应的地址,例如:连衣裙,对应的地址如下:
通过抓包 我们发现,发现这一页的真实的数据来源地址是:
https://s.1688.com/selloffer/rpc_async_render.jsonp?cps=1&n=y&filtOfferTags=279874&filt=y&keywords=%C5%AE%D7%B0&&categoryId=0&n=y&uniqfield=pic_tag_id&templateConfigName=marketOfferresult&pageSize=60&asyncCount=60&async=true&enableAsync=true&rpcflag=new&_pageName_=market&callback=jQuery172015741463935213496_1555383468519&beginPage=1
1688.item_get-获得1688商品详情数据接口
1.请求方式:HTTP POST GET
2.公共参数:
名称 |
类型 |
必须 |
描述 |
key |
String |
是 |
调用key(必须以GET方式拼接在URL中) |
secret |
String |
是 |
调用密钥 |
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版本, 查看调用示例 |
3.请求参数:
请求参数:num_iid=610947572360
参数说明:num_iid:1688商品ID
sales_data:&sales_data=1 获取近30天成交数据
agent:&agent=1 获取1688分销代发价格数据
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编码
headers = {
"Accept-Encoding": "gzip",
"Connection": "close"
}
if __name__ == "__main__":
r = requests.get(url, headers=headers)
json_obj = r.json()
print(json_obj)
5.响应示例