前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TSDK:淘宝开放平台或淘宝登录爬取

TSDK:淘宝开放平台或淘宝登录爬取

作者头像
小歪
发布2019-06-17 15:20:34
2.9K0
发布2019-06-17 15:20:34
举报

分享一个开源项目:TSDK。地址在阅读原文里。

TSDK

淘宝爬虫SDK,用于淘宝开放平台或淘宝登录爬取

淘宝系列爬虫系列SDK

  • SDK更新到第二版,对一部分进行了优化
    • 优化掉通用类,此类本身最开始是为了能够使用无授权API,但是之后发现臃肿繁杂,还不如直接请求网址URL,觉得有些画蛇添足了,所以直接去掉
    • 优化开放平台类,繁杂的配置文件,多余的加载,我用了Node的SDK之后发现还不如Node的方便,只需要传入API名称和数据就行了,那么我弄了配置文件又有什么用,没有达到简单可用的目的遂改成Node一样的方式请求数据
    • 优化H5API类,经过我思考后觉得配置文件太过繁杂,且不够灵活也不多变,爬虫本身就是需要多变的,所以移除配置文件,通过传递参数直接构建,更加灵活方便
  • 还有部分功能未实现,例如日志功能和请求重放功能,以及新添加的网站
代码语言:javascript
复制
  from TSDK.mTop import Client

  top = Client()
  #获取淘宝二维码,可以通过扫码登录淘宝
  umid_token = top.getUmidToken()
  res = top.login(umid_token)
  print(res.text)
  data = json.loads(res.text)
  thr = top.checkState(data['lgToken'],umid_token,30)
  thr.start()


  #设置开放平台的appkey和密钥,然后传递API和配置可以直接获取数据
  top.open.config['appkey'] = ''
  top.open.config['appsecret'] = ''

  res = top.open.execute('taobao.tbk.item.get',{
        'fields':'num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url,seller_id,volume,nick',
        'q':'女装',
        'cat':'16,18'
    })
  print(res.text)

  #获取宝贝详情
  res = top.H5.execute({
        'api':'mtop.taobao.detail.getdetail',
        'v':'6.0',
        'jsv':'2.4.8',
        'dataType':'json',
        'type':'json',
        'ttid':'2017%40taobao_h5_6.6.0',
        'AntiCreep':'true',
        'data':{
            'itemNumId':'585559878166'
        }
    })
  print(res.text)

  #API请求日志的记录,SDK对象继承自requests的Session类,可以通过添加hook来获取响应
  #请参考requests高级用法:http://docs.python-requests.org/zh_CN/latest/user/advanced.html
  def console(res):
    print(res.url)
    print(res.text)

  top.H5.hooks['response'] = [console]

Cookie的同步

代码语言:javascript
复制
  from requests.cookies import RequestsCookieJar

  dt = top.H5.cookies.get_dict('.login.taobao.com')

  jar = RequestsCookieJar()
  for name in dt:
    jar.set(name,dt[name],path='/',domain='.login.taobao.com')

  # 通过设置cookie来共享登录状态
  top.cookies.update(jar)

淘宝APP端API

此API设定还不完全,不过通过观察请求的方式可以发现加密放在了请求头里面,原本的链接上面没有的加密,不过也不一定,有的请求还是有携带加密参数的,不过之后的API设定应该会简单些,请求头的设置可以动态设置和计算,不过现在加密方式未解决,还未破解出来

淘宝短信登录

测试了淘宝短信登录,请求中需要一个ua参数,这个参数是算法生成出来的,经过测试应该是根据平台登录的浏览器环境记录下来,所以如果ua参数不对的话那么就登录不了,会出现滑动验证 如果要进行短信登录测试的话,替换ua参数为你自己浏览器上面的ua参数,在源码中修改


项目有很多可以参考的内容

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与算法进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TSDK
    • 淘宝系列爬虫系列SDK
      • Cookie的同步
      • 淘宝APP端API
      • 淘宝短信登录
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档