采集内容:
本项目选择 淘宝商品类目:连衣裙
数量:一共 100 页,4400 个连衣裙商品
筛选条件:淘宝天猫、销量从高到低、价格 0 元到 200 元以内。
项目目的:
1.商品列表数据采集分析
2.商品销量数据采集分析
3.区间段数据分析
项目步骤:
- 数据采集模块:利用 Python爬虫爬取淘宝网商品数据
- 数据预处理模块:对商品数据进行清洗和处理
一、爬取数据
因为淘宝网是有反爬虫机制的,虽然我使用了多线程、修改 headers 参数,以及使用代理 ip 等,也考虑到我当前测试环境是使用校园网进行爬取淘宝商品信息的,学校只有一个公网 ip,按照以往的经验,使用校园网做测试环境的话是不容易被封的,但仍然不能保证每次 100% 爬取,所以我增加了循环爬取,每次循环爬取未爬取成功的页面,直至所有的页面全部爬取成功。
淘宝商品页面上存储的商品数据是以 Json 格式存储的,在这里我选择用正则表达式进行解析,代码如下:
1.请求方式:HTTP GET POST
2.公共参数:
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
key | String | 是 | 调用key(必须以GET方式拼接在URL中,查看调用示例) |
secret | String | 是 | 调用密钥 (复制v: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版本 |
3.请求参数:
请求参数:q=连衣裙&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&page_size=&seller_info=&nick=&ppath=&imgid=&filter=
参数说明:q:搜索关键字
cat:分类ID
start_price:开始价格
end_price:结束价格
sort:排序[bid,_bid,bid2,_bid2,_sale,_credit]
(bid:总价,bid2:商品价格,sale:销量,credit信用,加_前缀为从大到小排序)
page:页数
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-vixing.taobaoapi2014.cn/taobao/item_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&q=女装&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&page_size=&seller_info=&nick=&ppath=&imgid=&filter="
headers = {
"Accept-Encoding": "gzip",
"Connection": "close"
}
if __name__ == "__main__":
r = requests.get(url, headers=headers)
json_obj = r.json()
print(json_obj)
5.爬取到商品数据我是先以 Excel 文件的 xls 格式保存存储到本地上,方便调试,以下图 是已经爬取到的数据。