[转载]C# 脚本代码自动登录淘宝获取用户信息 - Ivan Zou - 博客园

[转载]C# 脚本代码自动登录淘宝获取用户信息 – Ivan Zou – 博客园.

最近遇到的一个需求是如何让程序自动登录淘宝, 获取用户名称等信息. 其实这个利用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());
}
复制代码

6. 运行效果:

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

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

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

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

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

API – 使用Default对象 – 基础篇

示例 – 如何翻页

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

Spider Studio 社区信息

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏