PHP如何類比登入學校個人門戶?

來源:互聯網
上載者:User
關鍵字 Fportal ctgu 15872474165 2010138112 edu
https://sso.ctgu.edu.cn:7002/cas/login?service=http%3A%2F%2Fportal.ctgu.edu.cn%2Fportal%2Findex.jsp

使用者名稱:2010138112
密碼:15872474165

如題所示,類比登入擷取個人資訊。求高手給出原始碼

回複內容:

瀉藥
建議連同酬勞一併寫入提問當中。之前寫過一個,基本上和你的需求是一樣的,給你參考自己寫吧。

Crawl/identifyCode at master · Tairy/Crawl · GitHub

這種類比登陸其實很簡單,php的話主要用curl來實現。仔細研究一下你要抓的站具體是怎麼實現使用者登入的,可以用wireshark或者burpsuite(建議用後者)抓包看看整個過程都有那幾次請求,每次請求都發送了哪些資料,構造好發給他就可以實現登入了。

之後擷取個人資訊就很容易了,找找php解析html庫,或者最簡單粗暴的就是字串截取函數加Regex,把你想要的資料提取出來就好了。

對於你給出的這種驗證碼屬於非常容易識別的驗證碼了,基本的識別原理參看使用Canvas進行驗證碼識別

當然比較蛋疼的問題就是網頁編碼問題,經常爬過來全是亂碼,網上找找看轉碼的方法,都試一下,這是一門玄學,能不能成功看你人品和耐心吧。

我這個repo裡面基本上實現了上面的一套流程,你可以參照著寫吧!

最後還想說的是,爬站還是用python吧,request+beautifulsoup不是一般的好用。做這個php真不擅長。雖然我依然認為php是世界上最好的語言!!!(如果你想用python或者其他的寫的話看看我這個repo裡面的其他目錄,我在readme裡面寫清楚的)。之前寫過一個類比登入我們學校門戶網站的PHP程式,當時主要是為了抓取學產生績資訊計算出學分積,而且我們的門戶網站沒有驗證密碼,所以就簡單了很多,鑒於你這個有驗證碼,就會涉及到圖片驗證碼的識別,這個恐怕你得找個識別率高的識別演算法才能搞定了,我就簡單說下類比登入的步驟,分析下你們那個網頁的登入過程,找到登入時的表單,然後把帳號,密碼和驗證碼參數都填好提交表單,然後一步一步分析登入過程,一般都會跳轉好幾次,還有可能是跨網域名稱的跳轉,所以最好每次都更新下cookie,直到轉到有需要資訊的頁面,後面每次get頁面時記得帶上cookie就好...使用 firefox,chrome,safari 之類的主流瀏覽器看一下要求標頭。
然後用 php 的 curl 類比請求。
curl_setopt($ch, CURLOPT_HTTPHEADER, $HttpHeaderArray);這種問題應該去Google百度,而不是在這提,網上一大堆的答案curl,搞個cookie,設定下瀏覽器標識,還有什麼referer,你的問題聽起來沒多難,寫起來不知道那個網站防止自動登陸的代碼到底怎樣,要一個一個試,尤其是一些ajax操作,參數裹在一堆js裡,少傳一個參數給你一個error,說到底是個體力活。戳開後發現有驗證碼,好吧… 你要多加一步驗證碼識別的模組,然後全部post到介面就應該能行了簡單的辦法是用curl,不會先百度一下吧,一個晚上怎麼都搞清楚了。然後先用瀏覽器抓包分析下,搞清楚request和response,然後就可以寫代碼去實現了。驗證碼能寫出識別演算法就寫吧,寫不出來就把驗證碼抓下來手填吧=_=爬蟲思維
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.