Re: 請問我想要直接控制網頁,但找不到方向

看板Visual_Basic作者 (jackiechin)時間7年前 (2017/04/03 10:36), 7年前編輯推噓1(103)
留言4則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《waiter337 (給開司一罐蘇格登)》之銘言: : 因為工作上的需求,我想寫個小程式 : 我找個網頁來練習 : https://login.104.com.tw/login.cfm?frombar=jbbar_login : 這是104的登入網頁 : 假設說,我想要在身份證字號 密碼 輸入值 : 會員登入click : 因為我其他的電腦,沒有裝excel : 想說我該從哪個軟體下手 : 是vb6,.net,還是asp? : 順序是這樣 : 1.手動開啟ie網頁 : 2.手動開啟程式(程式會自動上私人雲端伺服器抓資料,並放入程式中的資料庫) : 在程式中的資料庫搜尋"登入資料" : 選擇想要用的登入資料 : 將資料用vb from上設定好的按鈕觸發傳入ie網頁 : 補充: : 每次開啟程式時,或者按下"F12"特定按鈕, : 程式本身會去我的雲端伺服器,找資料庫,下載最新資料,儲存在程式內的資料庫 : 平常在搜尋登入資料時,並不會上伺服器下載資料 : 如果搜尋出的登入資料,覺得有錯,可以當下修改後按儲存, : 儲存時,更新的資料會上傳雲端伺服器 : 因為我只有vba的底子 : vb只有很基礎的認知, : 想問幾個問題 : 1.我該看哪些書 : 2.我該上網查哪些關鍵字 : 3.yotutbe中有沒有相關的影片可供教學 : 如果有人願意指引一下方向,一人300P 寄信 推文皆可算 : 3Q 給一個範例的流程,須要使用到Visual Studio 開一個WindowsForm專案來寫 要注意post login原來網頁有無包含到Hidden的欄位以及postURI是否會每次變動 以下為程式碼: --------------------------------------------------------- Dim URI As String = "https://login.104.com.tw/login.cfm?frombar=jbbar_login" Dim postURI As String = "https://login.104.com.tw/act_login.cfm?qazplm=805266_898335_132674" Dim userName As String = "myname" Dim passWord As String = "mypassword" Dim cookieContainer As New CookieContainer() Dim outputStream As System.IO.Stream = Nothing 'Get Login頁面 Dim request As HttpWebRequest = TryCast(WebRequest.Create(URI), HttpWebRequest) request.Method = "GET" request.KeepAlive = False '接收回傳的Login頁面 Dim response As HttpWebResponse = TryCast(request.GetResponse(), HttpWebResponse) Dim responseStream As System.IO.Stream = response.GetResponseStream() Dim reader As New System.IO.StreamReader(responseStream, Encoding.UTF8) Dim srcString As String = reader.ReadToEnd() '自動填寫並送出Login頁面, 需要的參數名稱要自行查閱網頁原始碼的輸入框的name Dim postString As String = "username={0}&password={1}" postString = String.Format(postString,userName, passWord) '轉換Post String data為 Byte Dim postData As Byte() = Encoding.ASCII.GetBytes(postString) '設定Login Post的相關參數 request = TryCast(WebRequest.Create(postURI), HttpWebRequest) request.Method = "POST" request.KeepAlive = False request.ContentType = "application/x-www-form-urlencoded" request.CookieContainer = cookieContainer request.ContentLength = postData.Length '接收回傳的Login資訊 response = TryCast(request.GetResponse(), HttpWebResponse) responseStream = response.GetResponseStream() reader = New System.IO.StreamReader(responseStream, Encoding.UTF8) srcString = reader.ReadToEnd() --------------------------------------------------------- 透過程式登入的流程大致是這樣,srcString 就是登入成功看到畫面的網頁原始碼。 若登入後還需要多點很多層取得資料,基本上也可以仿照這個流程繼續接著寫 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.15.56 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1491187010.A.D78.html ※ 編輯: jackiechin (223.140.15.56), 04/03/2017 10:41:01 ※ 編輯: jackiechin (223.140.15.56), 04/03/2017 10:47:24

04/22 02:26, , 1F
讚,順便跟你說一下,當時我也找到相關的解法
04/22 02:26, 1F

04/22 02:27, , 2F
我當時只有回在office版,查同樣的文章名稱
04/22 02:27, 2F

04/22 02:27, , 3F
你的我要在研究研究,感覺更深入
04/22 02:27, 3F

04/22 02:28, , 4F
04/22 02:28, 4F
文章代碼(AID): #1OuRL2ru (Visual_Basic)
文章代碼(AID): #1OuRL2ru (Visual_Basic)