網頁自動化、網頁自動登入、自動提交、秒殺、搶車票等
阿新 • • 發佈:2022-05-12
之前寫過一篇文章,測評了winform下各種瀏覽器核心的效能和功能。C#Winform下使用WebKit、Geckofx、CefSharp心得 - 小嚕嘟 - 部落格園 (cnblogs.com)
其實研究核心無非也就是因為想要操作網頁、爬蟲這類行為。很少有人真的用這個核心去開發一個瀏覽器吧。然而在我寫python爬蟲的時候突然發現了selenium這個東西的存在,就想著試試看在C#裡有沒有,結果還真的有。
1.Selenium是一個用於Web應用程式測試的工具。Selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣。支援的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。這個工具的主要功能包括:測試與瀏覽器的相容性——測試應用程式看是否能夠很好得工作在不同瀏覽器和作業系統之上。測試系統功能——建立迴歸測試檢驗軟體功能和使用者需求。支援自動錄製動作和自動生成.Net、Java、Perl等不同語言的測試指令碼。
在NuGet下面可以直接搜到Selenium.RC,他支援的核心也有好多Chrome、IE、EDGE、FireFox。最近edge封神了,我就用了edge來做專案。
2.除了安裝selenium還需要找到webdriver,這個是edge的 Microsoft Edge WebDriver - Microsoft Edge Developer。不一樣的核心dll不同,不要找錯了。
3.啟動除錯
EdgeDriverService service = EdgeDriverService.CreateDefaultService(Application.StartupPath, "msedgedriver.exe", 8888);//定義埠監控 EdgeOptions options = new EdgeOptions();//設定引數,可以不加 options.AddArgument("--ignore-certificate-errors");//可以不加 options.AddArgument("--ignore-ssl-errors");//可以不加 driver = new EdgeDriver(service, options); driver.Url = "https://store.steampowered.com/login/";//開啟的網址
4.模擬登陸
driver.FindElementById("input_username").SendKeys("jyong0718");//用F12找到使用者名稱的ID並輸入
driver.FindElementById("input_password").SendKeys("********");//用F12找到密碼的ID並輸入
driver.FindElementByClassName("login_btn").Click();//點選登入按鈕
5.演示效果
簡簡單單10行程式碼,即可完成一個登入操作。換做其他搶票、秒殺也是一樣的道理,直接找到下單按鈕的ID,寫一個死迴圈的點選即可。或者想要更快的話,抓取post的資料,迴圈post也是可以的。
技術QQ 1124391467