最近遇到的一个需求是如何让程序自动登陆淘宝, 获取用户名称等信息. 其实这个利用SS (SpiderStudio的简称) 实现起来很是简单. 十数行代码就能够作到很是完善:html
1. 运行SS (下载地址), 编写脚本打开淘宝登录页面:ide
Default.Navigate("https://login.taobao.com/member/login.jhtml"); Default.Ready();
2. 找到用户名, 密码的输入框, 输入信息, 点击登陆按钮:post
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. 等待登陆完成, 页面跳转:url
Default.Reset();
Default.Ready();
4. 获取用户姓名的节点, 并显示出来:spa
var name = Default.SelectSingleNode("div.name>a"); MessageBox.Show(name.Text());
5. 完整的脚本代码:code
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采集以及相关脚本编写的其余文章:htm