C# 脚本代码自动登录淘宝获取用户信息

最近遇到的一个需求是如何让程序自动登录淘宝, 获取用户名称等信息. 其实这个利用SS (SpiderStudio的简称) 实现起来非常简单. 十数行代码就可以做到非常完善:

1. 运行SS (下载地址), 编写脚本打开淘宝登陆页面:

Default.Navigate("https://login.taobao.com/member/login.jhtml");
Default.Ready();

2. 找到用户名, 密码的输入框, 输入信息, 点击登录按钮:

var user = Default.SelectSingleNode("#TPL_username_1");
user.Focus(); //模拟点击用户名文本框
user.Attr("value", "noxxxxxxx"); //输入用户名
Default.Wait(1); //等待一秒
Default.SelectSingleNode("#TPL_password_1").Attr("value", "*******"); //找到密码框并输入密码
Default.Wait(1); //等待一秒
var btnLogin = Default.SelectSingleNode("#J_SubmitStatic");
btnLogin.Click(); //点击登录按钮

请注意代码中有两处出现Default.Wait(1). 这是为了控制节奏. 淘宝对机器人防范严格, 如果我们输入过快, 淘宝就会追加要求输入验证码. 如果我们控制一下节奏, 淘宝会认为这就是一个正常的登录, 于是不要验证码也是能够实现登录的!

3. 等待登录完成, 页面跳转:

Default.Reset();
Default.Ready();

4. 获取用户姓名的节点, 并显示出来:

var name = Default.SelectSingleNode("div.name>a");
MessageBox.Show(name.Text());

 5. 完整的脚本代码:

public void Run()
{
    Default.Navigate("https://login.taobao.com/member/login.jhtml");
    Default.Ready();
    var user = Default.SelectSingleNode("#TPL_username_1");
    user.Focus();
    user.Attr("value", "nxxxxxxx");
    Default.Wait(1);
    Default.SelectSingleNode("#TPL_password_1").Attr("value", "********");
    Default.Wait(1);
    var btnLogin = Default.SelectSingleNode("#J_SubmitStatic");
    btnLogin.Click();
    Default.Reset();
    Default.Ready();
    var name = Default.SelectSingleNode("div.name>a");
    MessageBox.Show(name.Text());
}
View Code

 6. 运行效果:

 7. 和Spider Studio采集以及相关脚本编写的其他文章:

C#中另辟蹊径解决JSON / XML互转的问题

C#代码获取或设置Iframe中的HTML

示例 - C#脚本代码采集搜狐NBA球员, 球队和比赛实况

C#中利用JQuery实现视频网站的缩略图采集

API - 使用Default对象 - 基础篇

示例 - 如何翻页

示例 - 向百度说 Hello world! 并获得回应.

Spider Studio 社区信息

posted @ 2014-01-03 00:00  Ivan Zou  阅读(6839)  评论(12编辑  收藏  举报