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()); }
6. 运行效果:
7. 和Spider Studio采集以及相关脚本编写的其他文章: