最近遇到的一個需求是如何讓程序自動登陸淘寶, 獲取用戶名稱等信息. 其實這個利用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