C#HttpHelper实现淘宝登录

       C#HttpHelper类苏飞版据说是最牛的爬虫类,实现自动识别网页的编码可方便的设置Cookie/证书/代理,可以使用它进行Get和Post请求

       对于苏飞大侠的自述,我不明觉厉,不过作为一只新手虫,我初步学习用它来实现淘宝登录,希望后面能学会用它各种牛叉的功能。本文主要参考了螳螂虾的“C#实现淘宝POST登陆“(原文链接已失效),原文中含主要代码,无整个工程(虽说提供了下载地址,但全文与评论中均未见提取密码)。本新手虫参考螳螂虾博主分享的界面和代码自行完善了整个工程,可以实现登录,但得不到与博主一模一样的效果。本文记录了完善工程的过程,对最终运行结果做了一些粗浅的分析,分享自己的一些学习体会。

       1.运行结果

       工程完善后得到的运行结果如下图所示,图中红色字体是界面设计时各控件的名称,对应程序引用控件时的变量。由图可知虽然相关信息显示登录成功,但并未得到螳螂虾所描述的用户名与买家信用。

       2.重要文件

        此部分的重点是HttpHelper类,官方并无该类,我用的HttpHelper是苏飞版,螳螂虾用的应该也是这个版本(原作者未说明,这是本人斗胆的推测)。故界面设计好后,到苏飞论坛下载HttpHelper类1.4正式版,将解压后的文件HttpHelper.cs拷贝至当前工程所在文件夹并将该文件加入之工程,在需要用到的该类.cs文件中添加”using DotNet.Utilities;“。

       我的工程的运行环境是Microsoft Visual Studio2008,最重要的文件是form1.cs(初次建立C#工程,最重要的文件只用了一个最粗俗的名字,还请各位看官见谅),实现功能的代码均在按下”Login”后开始执行,form1.cs的全部代码如下:

    3.结果分析

       虽然可以正常登录淘宝,但是得不到用户名与买家信用。针对该现象,我做了一些简单粗浅的分析,有不足之处还请各位大拿指正。

       3.1 登录淘宝,F12去分析用户名与买家信用的相关信息

       由上述代码可知,登录成功后,再次请求的URL是””http://i.taobao.com/my_taobao.htm”。我自行在浏览器中开启该URL,通过F12可以看到我的淘宝帐号的信用等级部分如下,其中的”,请点击查看详情“与代码中正则表达式的关键词相符。

       而用户名部分如下:

       螳螂虾的代码中的正则表达式的关键词是”snshomeusername”,由此推测可能当时博主写这些代码时淘宝用的是”snshomeusername”,而现如今换成了”snshomeside“,于是我将原代码中的关键词更新为”snshomeside“,但运行结果一致。

     3.2 设置断点,追踪运行结果

     我在每一处new HttpItem()均设置断点,查看中途的运行结果。呃,说句实话,就我目前的水平,很多东东我都看不懂。不过我有一个明确的关注点,原代码中最终分析的内容是resultMsg.Html,所以我需要看看这个家伙到底装了些啥。在前几次HttpHelper类的GetHtml函数执行完成后,所返回的Html中均有内容,但是当URL是””http://i.taobao.com/my_taobao.htm”时,返回的Html居然为空!这是为什么呢?不解,有待进一步学习。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Fork me on GitHub