天天看點

用程式來控制一個網頁,實作自動輸入等操作

首先今天要說的東西跟遊戲無關,你是不是有時候會遇到,在某個網頁上重複着幾十次的簡單而又無聊的錄入或點選等工作?比如你的程式需要測試,需要注冊大量的測試郵箱。比如你的老闆是個變态,讓你去各個論壇發大量的垃圾貼子(最無恥行為,純屬舉例)。或者,你需要定時的到某一個網頁上執行某一些行為,比如上班下班的出勤打卡系統,等等吧,

如果有,那麼我今天所介紹的或許會對你有幫助。

當然,如果你要操作的這些網頁都是自己開發的,那麼無所謂了,你在多開發個工具就行了,但是我說的上面這些都是第三方的網頁,你控制不了它們,如果遇到上上述情況,而你是一個挨踢程式員,而你又選擇老老實實的重複着這些無聊又費時的工作,那你就真該挨踢了。

要實作這些功能,你隻需要用程式控制這些網頁,讓網頁聽你的就行了。要動手實作這一系列的功能,你需要做幾個簡單的準備。

1,os環境:windows

2,ie浏覽器

3,工具:excel或者visual studio

先來看看如何用excel來控制一個網頁。

建立一個excel并且進入vba,标準模式,什麼?不知道vba?你可以找我的兩個老師問一下,他們一個姓百,另一個姓谷,诶?你說你也認識?那大家都是自己人了,你什麼時候請吃飯啊?

如下圖。

用程式來控制一個網頁,實作自動輸入等操作

我是日文系統,中文的你對照着自己來吧...

要對ie進行操作,首先需要引入兩個插件

html object library

microsoft internet controls

如圖

用程式來控制一個網頁,實作自動輸入等操作

打開ie,你隻需要下面幾行代碼

比如我要打開百度,那就這樣

接着你需要等待頁面加載

好了,百度打開了,是不是很簡單,不過你也會說,打開個網頁算什麼,随便一個程式都可以吧,好吧,咱們下面來實作自動搜尋。

首先,咱們用vba在百度的輸入框裡輸入幾個文字,百度的輸入框的代碼如下

那我們就可以通過這個id來對輸入框進行輸入,如下

如果你上面都沒有出錯的話,"hellow world"應該已經被加入到輸入框裡了。

那麼下面用vba來點選搜尋按鈕,進行搜尋。百度的搜尋按鈕代碼如下

看到id了吧,那就簡單了,下面這樣來點選它

怎麼樣,自動搜尋完成了吧

當然,這隻是一個最簡單的例子而已,如果沒有id怎麼辦?你也可以下下面這樣用它

看到了吧,和js很像,如果你不願意查相關的api的話,那你就拿js的操作方法往上面套用吧

下面來看另一個頁面的結構,比如下面這樣

如果你要操作這個頁面的子頁面,也很簡單

這個是操作索引為1的子頁面,當然你也可以循環所有的子頁面,來做的要做的事。

上面所介紹的都是先打開一個頁面,然後再進行操作,如果需要操作一個已經打開的頁面,你需要這樣。

excel就說這麼多了。

下面用.net來做,既然前面用了vba,這裡我就不用vb再重複了,換用c#來實作。

打開visual studio,建立一個項目,同樣,這次你需要引入三個插件

microsoft shell controls and automation

用程式來控制一個網頁,實作自動輸入等操作
用程式來控制一個網頁,實作自動輸入等操作

啟動ie,并打開百度

擷取document

同樣,在輸入框裡輸入文字

開始搜尋。

下面利用c#如何來操作已經打開的浏覽器呢?看下面代碼

好了,其他的方法如

等等,自己套用一下就可以了

接下來是frame操作,如下

完了,操作方法基本上都大同小異吧。

在使用.net來操作浏覽器的時候,我發現操作同一個頁面時,如果頁面發生重新整理或者跳轉等動作後,程式經常會出bug,網上搜尋了一下,發現還真不是我一個人,那如何來避免呢?

因為使用.net來第一次操作頁面的時候是肯定不會出錯的,必須是2次或2次以上才會出現錯誤,是以我們可以做兩個程式,在一個程式中調用另一個,調用完之後,就把它關閉掉,這樣每次都相當于啟動一個新程式,就不會出bug了。

啟動一個新程式用下面代碼

傳入你的程式的路徑,就可以打開它了。

有了上面的知識,你可以自由的發揮了,比如你做一個定時程式,在上班時間自動打卡,然後自己接着睡一會兒....噓!!這絕對不是我說的。

今天就介紹這麼多了,歡迎繼續關注我的部落格

轉載請注明: