本程序实现模拟登录淘宝联盟并且下载淘宝客订单xls文件。现提供源码下载,有不明白的可以问我,同时如果您有好的修改建议请回复。我是第一次开发Http程序,请多包涵。

本次开发环境与工具如下:
IE9.0浏览器 + IE抓包插件HttpWatch +WIN7 64位系统 + VS2005 IDE + .NET 2.0框架

测试时注意事项:
必须取消淘宝帐号登录保护 http://110.taobao.com/protect/protect_web.htm

做这个程序关键是分析数据,只有数据分析出来了,才能动手写代码。
下面来几张截图说明分析数据步骤:
第一步:在淘宝联盟 www.alimama.com上面使用淘宝账号登录,输入账号密码点击登录后,截到如下数据

现在我们知道了要POST的URL,即" https://login.taobao.com/member/login.jhtml",以及要POST的数据,还有服务器将会回复的内容,那么请看如下代码:
  private void Login()
        {         
            HttpItem item = new HttpItem();
            item.URL = https://login.taobao.com/member/login.jhtml;   
            item.Method = "post";         
            item.Postdata = string.Format("ua=056u5Ob……&TPL_username={0}&TPL_password={1}&...……", HttpUtility.UrlEncode(txtLoginId.Text.Trim()), HttpUtility.UrlEncode(txtPwd.Text.Trim()));
            item.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
            item.Allowautoredirect = true;              
            HttpResult result = m_Http.GetHtml(item);
            string html = result.Html;//服务器回复的内容,它是json格式,包括message,token等字段,message为空为登录成功,否则不为空
            string cookie = result.Cookie;//保存cookie便于后面还要使用
Match m = Regex.Match(html, "(?<=,\"message\":\").*?(?=\",)");
            if (string.IsNullOrEmpty(m.Value))  //登录成功账号密码正确的情况下
            {
                Match token = Regex.Match(html, "(?<=\"token\":\").*?(?=\")");//捕获token的值,后面提交的网址中将要使用它
                if (!string.IsNullOrEmpty(token.Value))
                {
                 ……
               }
           }            
       }
如上代码所示,当访问请求提交后,服务器返回的json内容在变量html里面,其中message字段表示是否有错误,如:账号密码不正确,如果账号密码正确message字段值将为"",所以我们利用正则表达式捕获message的值。另外token字段我们也要获取下来,因为下一个访问的网址要用到它。
第二步:根据捕获的token值拼装网址并继续访问,如下图

从上面得到的token值,经过拼装字符串得到下次访问的URL,即 " https://passport.alipay.com/mini_apply_st.js?site=0&token={0}&callback=vstCallback62 "。这次访问后服务器会返回一段js代码,其中包含一个"st"的值(看上图的红色框部分),同样,这次我们也像上次一样用正则表达式捕获"st”的值并且保存,因为后面要使用到它。
(小结:其实我一直在做一件事情,即:把这次访问的结果作为参数拼装一下将得到下次要访问的网址)
private void Login(){
                 ……
Match token = Regex.Match(html, "(?<=\"token\":\").*?(?=\")");//获取token值
                if (!string.IsNullOrEmpty(token.Value))
                {
                    item = new HttpItem();
                    item.Method = "get";
                     item.URL = string.Format(" https://passport.alipay.com/mini_apply_st.js?site=0&token={0}&callback=vstCallback62 ", token.Value);
                    item.Accept = "application/javascript, */*;q=0.8";
                    result = m_Http.GetHtml(item);
                    html = result.Html;
                    cookie += result.Cookie;
                     Match st = Regex.Match(html, "(?<=\"st\":\").*?(?=\")");//捕获st的值,后面还要使用它
                   ……
              }
}
第三步:根据捕获的st值,继续访问,如下图

通过将上面得到的st值再次拼装下网址得到URL即 https://login.taobao.com/member/vst.htm?st={0}&……TPL_username%3D{1}……&callback=jsonp75
,{0}处填写上一步的st,{1}处填写淘宝账号,这次服务器同样会返回下一次要访问的网址,我们将他捕获出来它就是url字段(上图中红框标记)

第四步:我们继续访问这个url,服务器将会进行重定向三次,每次重定向的网址从HttpResult.Header中Location字段中得到再赋值给item.URL进行访问。如下图

至此登录就完成了,接下来就是下载xls文件了。对于下载xls文件较简单,直接get方式提交网址,得到byte[]字节数组并利用FileStream类写到文件中。大家根据以上分析的思路学会分析才是最重要的,所以下载这部分就留给大家自已分析了。提示:下载观看我的源码+观察HttpWatch截获的数据2种方式相结合去分析,对于观察HttpWatch截获的数据主要观看他是POST还是GET方式,以及访问的地址和提交的COOKIE以及服务器返回的COOKIE,还有服务器的回复流这几个方面着手分析。

上面我在讲解的过程中分了4个步骤,是从第1步至第4步讲解的,其实我们在分析数据的时候应该首先从第4步开始一直回溯cookie就得到了第1步,因为第4步中服务器发来的cookie才是最重要的,有了它才能访问淘宝联盟的首页(这个结论当然是通过几次试验得出的),但如果不进行第123步的话第4步的访问地址t和cookie无法得出,所以第4步是分析数据的切入点,至关重要。

点击进入源码下载页面

点击进入HttpWatch下载页面

HTTP-C#模拟登录淘宝联盟并下载淘宝客订单xls相关推荐

  1. HttpHelper类登录淘宝联盟并下载淘宝客订单xls c#模拟淘宝登录

    c# 利用飞哥的HttpHelper 1.3版本(因为我用VS2005开发,1.3报错少)实现模拟登录淘宝联盟并且下载淘宝客订单xls文件.现提供源码下载,有不明白的可以问我,同时如果您有好的修改建议 ...

  2. 【转】HttpHelper类登录淘宝联盟并下载淘宝客订单xls

    利用飞哥的HttpHelper 1.3版本(因为我用VS2005开发,1.3报错少)实现模拟登录淘宝联盟并且下载淘宝客订单xls文件.现提供源码下载,有不明白的可以问我,同时如果您有好的修改建议请回复 ...

  3. HttpHelper类登录淘宝联盟并下载淘宝客订单xls

    利用飞哥的HttpHelper 1.3版本(因为我用VS2005开发,1.3报错少)实现模拟登录淘宝联盟并且下载淘宝客订单xls文件.现提供源码下载,有不明白的可以问我,同时如果您有好的修改建议请回复 ...

  4. Python爬虫实战(5):模拟登录淘宝并获取所有订单

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  5. Python爬虫实战(5):模拟登录淘宝并获取所有订单(1)

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 1. python模拟登录淘宝网页 2. 获取登录用户的 ...

  6. 淘宝 模拟 登录 总结 【QQ 346767073 】

    今日花了3天时间研究了下淘宝登录 分别用 php python都实现了淘宝登录 淘宝登录方式 有3种 1. aes 256位加密密码的post登录 需要ua 2 明文密码 post登录 需要ua 3 ...

  7. python淘宝爬虫登陆功能和下单功能_Python爬虫实战五之模拟登录淘宝并获取所有订单 | 静觅...

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了 ...

  8. python fastapi 获取所有header信息_Python爬虫实战五之模拟登录淘宝并获取所有订单...

    点击上方[Python与人工智能社区]→右上角[...]→[设为星标⭐] 经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家 ...

  9. 淘宝联盟实现第三方用户关联返佣订单的解决方案

    淘宝联盟实现第三方用户关联返佣订单的解决方案 利用淘宝联盟思域用户渠道id与第三方用户做关联实现绑定,当第三方用户用关联的淘宝账号购买自己渠道的淘宝推广商品后,淘宝联盟后台获取的返佣订单就会标识对应的 ...

最新文章

  1. telegraf input的配置
  2. python学习-抓取知乎图片
  3. Netty的队列有何不一样
  4. 如何把大咖的知识,内容、思维,瞬间变成你的知识内容思维的秘诀
  5. 2013年蓝桥杯题集C本科B
  6. 用Log Explorer恢复数据的基本操作
  7. 图片上传,CheckBox等用户控件的应用代码
  8. Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署nacos-sentinel-rocketmq-zipkin-elasticsearch等等 一键部署 即开即用服务
  9. python zemax_最新Python中文版发布,跨界程序员零压力学Python之道!(附下载)
  10. html5 drag移动位置,HTML5拖拽功能drag
  11. 51单片机硬件基础知识
  12. matlab 模拟交易,股票量化投资策略模拟交易系统 [2017.01.19 更新]
  13. js click与onclick事件绑定,触发与解绑
  14. 初识htpp与tcp
  15. UVA10815 安迪的第一个字典 Andy‘s First Dictionary
  16. 原型模型| 软件工程
  17. unity3D学习10 AR/MR技术
  18. 别把爱变成伤害,不要在朋友圈里乱晒娃,朋友圈晒娃注意四点
  19. MySQL mysql性能调优
  20. python中true用法_使用True/False作为键-如何/为什么这样做?

热门文章

  1. 51单片机实例3——使用P3口依次点亮8位LED
  2. 字长是计算机一次能处理的什么数据的位数,CPU一次能处理二进制数据的位数
  3. 小白自学搭建单机版的Hadoop生态圈(持续更新)
  4. 微信小程序之for循环
  5. 一家经营亏损的理疗按摩馆,一月内收回现金一百多万,怎么做的?
  6. gradle配置文件
  7. 华为手环,如何添加吃药提醒?
  8. 惠普gk100好不好_【老实说】hp /惠普gk100机械键盘吃鸡笔记本好不好?质量品质大曝光 | 智能扫地机器人评测...
  9. notepad 生成html,Notepad ++ HTML整洁
  10. 《Conditional BERT Contextual Augmentation》