<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何用Python優(yōu)雅的登錄校園網(wǎng)?

          共 2814字,需瀏覽 6分鐘

           ·

          2020-11-29 00:01

          點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書

          弦弦掩抑聲聲思,似訴平生不得志。

          前言

          今天這篇文章的思路來源于校園網(wǎng),很多的校園網(wǎng)在每次連接時都需要進(jìn)入一個網(wǎng)址進(jìn)行登錄,這個步驟真的是非常非常的麻煩(大學(xué)生都懂~)。所以這次來教大家如何實現(xiàn)一鍵登錄校園網(wǎng)。

          一鍵登錄校園網(wǎng)

          首先我們來看下整個的流程。首先需要進(jìn)行網(wǎng)絡(luò)連接,連接之后會跳轉(zhuǎn)到一個網(wǎng)址,也就是校園網(wǎng)登錄的網(wǎng)址。

          然后輸入賬號密碼登錄。

          我們需要做到的效果就是點擊一個可執(zhí)行文件然后實現(xiàn)校園網(wǎng)的自動登錄。(這里的可執(zhí)行文件在mac中為excu文件、win中為exe)

          我們首先解決如何通過Python進(jìn)行登錄,然后再解決打包的問題。

          其實對于Python的登錄,會爬蟲的朋友應(yīng)該很快就知道直接通過requests進(jìn)行表單提交即可。

          首先,我們抓包獲取校園網(wǎng)登錄提交表單的地址:

          同時,我們也拿到需要提交的表單格式,有些學(xué)校的校園網(wǎng)可能需要通過驗證碼驗證,一般不會有很復(fù)雜的驗證方式,如果需要驗證,那么需要去破解一下驗證碼,https://github.com/hellokuls/cnnyzm。這里給出我之前寫的驗證碼破解案例。

          拿到了之后就好辦了,直接post模擬提交就行了,這里我給出我所寫的代碼,基本的邏輯都是差不多,大家只需要改成自己學(xué)校的相關(guān)信息就可以了。

          #?encoding:?utf-8
          import?requests

          #?檢查是否連接入校園網(wǎng)
          def?checkinternet():
          ????url?=?'xxxxxxxxxxxxxxxxxxxxxx'??#校園網(wǎng)登錄的地址,用來測試是否連接校園網(wǎng)?
          ????try:
          ????????code?=?requests.get(url,?timeout=5).status_code
          ????????if?code?!=?200:
          ????????????print('沒有網(wǎng)絡(luò)哦~')
          ????????????return?0
          ????????elif?code?==?200:
          ????????????return?1
          ????????else:
          ????????????return?2
          ????except:
          ????????return?2


          def?login(username,?password):
          ????url?=?'xxxxxxxxxxxxxxxxxx'?#?校園網(wǎng)表單提交url
          ????postdata={
          ????????'action':?'login',
          ????????'ac_id':?1,
          ????????'user_ip':'',
          ????????'nas_ip':'',
          ????????'user_mac':'',
          ????????'username':?username,
          ????????'password':?password,
          ????????'save_me':?'0',
          ????????'ajax':?1
          ????}
          ????res?=?requests.post(url,?data=postdata)
          ????res.encoding?=?res.apparent_encoding
          ????res?=?res.text
          ????if?'login?ok'?in?res:??#?如果存在該字段
          ????????res?=?"登錄成功!"
          ????????return?res
          ????if?'5分鐘'?in?res:??#?多次錯誤提交可能會導(dǎo)致賬戶鎖定5分鐘
          ????????print("登錄失?。?)
          ????????return?res
          ????if?'E2620'?in?res:???#?此處是賬號已經(jīng)在別的設(shè)備登錄的情況,先注銷然后再次登錄
          ????????logout(url,?username,?password)
          ????????return?login(username,?password)
          ????return?res

          #?退出當(dāng)前賬號的登錄
          def?logout(url,?username,?password):
          ????logout_data?=?{
          ????????'action':?'logout',
          ????????'username':?username,
          ????????'password':?password,
          ????????'ajax':?1
          ????}
          ????res1?=?requests.post(url,?data=logout_data)
          ????res1.encoding?=?res1.apparent_encoding
          ????res1?=?res1.text
          ????print("賬戶已退出!")


          if?__name__?==?'__main__':
          ????status?=?checkinternet()
          ????if?status?==?0:
          ????????txt?=?login(xxxxx,?xxxxxxxx)?#?輸入賬號密碼
          ????????print(txt)
          ????elif?status?==?1:
          ????????print("有網(wǎng)絡(luò)!")
          ????????txt?=?login(xxxxxxx,?xxxxxxx)
          ????????print(txt)
          ????else:
          ????????print("未知結(jié)果!")

          講解完了代碼部分,我們該如何將它打包成一個可執(zhí)行文件直接通過點擊就可以進(jìn)行聯(lián)網(wǎng)呢?

          這里推薦一個庫---pyinstaller

          pip?install?pyinstaller

          這個庫能夠?qū)y文件直接打包成可執(zhí)行文件,支持win/mac/linux平臺。

          當(dāng)我們寫完文件后執(zhí)行下面命令:

          pyinstaller?-F?文件名.py

          執(zhí)行完后,我們可以看到生成了幾個文件夾,而可執(zhí)行文件就在dist文件夾中。

          放在桌面上,每次連接直接點擊一下就可以連接校園網(wǎng)了~

          -------------------?End?-------------------

          往期精彩文章推薦:

          歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請在后臺回復(fù)【入群

          萬水千山總是情,點個【在看】行不行

          /今日留言主題/

          你一般是怎么登錄校園網(wǎng)的呢?

          瀏覽 58
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  蜜芽成人网 | 色小哥 | 大长腿美女被操 | 欧美在线免费播放不卡欧美 | 不卡日本视频 |