运行环境:
PYTHON
-
requests库
-
time库
-
re库
实现思路:
-
检查此账号需不需要验证(滑动验证/验证码)
-
浏览器/工具 获取ua和加密后的密码(一劳永逸的方法)
-
post请求登录url获取st申请url
-
根据获得的st申请地址获取st码
-
用st码登录,提取重定向网址,存储 cookie
-
用cookie向其它页面发送请求,获取信息
函数说明:
-
check_login() #检查账号是否需要滑块验证
-
login_get_st() #登录验证获取st申请地址
-
get_st() #获取st码
-
st_login() #使用st登录淘宝
-
test() #商品爬取测试
-
test2() #个人页面测试
文件结构:
-
demo文件夹存放代码文件
-
data文件夹存放爬取的数据
未来完善升级想法:
-
将验证账号和登录方法封装在一起
-
采用IP代理更好的的获取信息
-
cookie序列化减少重复登录(已完成)
-
采用框架实现模拟滑动操作,极大的提高信息的获取效率
-
采用多线程或分布式,将信息获取速度最大化
-
挺粗糙的一个作品哈哈,有空会继续优化的
封装好的接口代码:
1.请求方式: HTTP POST GET
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.代码展示:
# 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_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1"
headers = {
"Accept-Encoding": "gzip",
"Connection": "close"
}
if __name__ == "__main__":
r = requests.get(url, headers=headers)
json_obj = r.json()
print(json_obj)