溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

發(fā)布時(shí)間:2021-08-07 09:27:19 來(lái)源:億速云 閱讀:178 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要為大家展示了“python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本”這篇文章吧。

一、背景

最近學(xué)校校園網(wǎng)不知道是什么情況,總出現(xiàn)掉線的情況。每次掉線都需要我手動(dòng)打開(kāi)web瀏覽器重新進(jìn)行賬號(hào)密碼輸入,重新進(jìn)行登錄。系統(tǒng)的問(wèn)題我沒(méi)辦法解決,但是可以寫一個(gè)簡(jiǎn)單的python腳本用于自動(dòng)登錄校園網(wǎng)。每次掉線后,再打開(kāi)任意網(wǎng)頁(yè)就是這個(gè)頁(yè)面。

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

二、實(shí)現(xiàn)代碼

#-*- coding:utf-8 -*-
__author__ = 'pf'
import time
import requests
class Login:
 #初始化
 def __init__(self):
  #檢測(cè)間隔時(shí)間,單位為秒
  self.every = 10
 #模擬登錄
 def login(self):
  print self.getCurrentTime(), u"拼命連網(wǎng)中..."
  url="http://222.24.19.190:8080/portal/pws?t=li"
  #消息頭
  headers={
  'Host':"222.24.19.190:8080",
  'User-Agent':"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0",
  'Accept':"application/json, text/javascript, */*; q=0.01",
  'Accept-Language':"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
  'Accept-Encoding':"gzip, deflate",
  'Referer':"http://222.24.19.190:8080/portal/index_default.jsp",
  'Content-Type':"application/x-www-form-urlencoded",
  'X-Requested-With':"XMLHttpRequest",
  'Content-Length':"291",
  'Connection':"close"
  }
  #提交的信息
  payload={
  'userName':'1403810041',
  'userPwd':'MTk4NDEy',
  'userurl':'http%3A%2F%2Fwww.msn.com%3Focid%3Dwispr&userip=222.24.52.200',
  'portalProxyIP':'222.24.19.190',
  'portalProxyPort':'50200',
  'dcPwdNeedEncrypt':'1',
  'assignIpType':'0',
  'appRootUrl':'=http%3A%2F%2F222.24.19.190%3A8080%2Fportal%2F',
  'manualUrlEncryptKey':'rTCZGLy2wJkfobFEj0JF8A%3D%3D'
  }
  try:
   r=requests.post(url,headers=headers,data=payload)
   print self.getCurrentTime(),u'連上了...現(xiàn)在開(kāi)始看連接是否正常'
  except:
   print("error")
 #判斷當(dāng)前是否可以連網(wǎng)
 def canConnect(self):
  try:
   q=requests.get("http://www.baidu.com")
   if(q.status_code==200):
    return True
   else:
    return False
  except:
   print 'error'
 #獲取當(dāng)前時(shí)間
 def getCurrentTime(self):
  return time.strftime('[%Y-%m-%d %H:%M:%S]',time.localtime(time.time()))
 #主函數(shù)
 def main(self):
  print self.getCurrentTime(), u"Hi,歡迎使用自動(dòng)登陸系統(tǒng)"
  while True:
   self.login()
   while True:
    can_connect = self.canConnect()
    if not can_connect:
     print self.getCurrentTime(),u"斷網(wǎng)了..."
     self.login()
    else:
     print self.getCurrentTime(), u"一切正常..."
    time.sleep(self.every)
   time.sleep(self.every)
login = Login()
login.main()

三、解決步驟

首先需要一個(gè)用于抓包的工具。我們要抓取提交的數(shù)據(jù)以及提交到的url地址。我這里用的是firefox瀏覽器的httpfox插件。

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

用firefox瀏覽器打開(kāi)登錄頁(yè)面,并且打開(kāi)httpfox插件。在頁(yè)面中輸入賬戶名和密碼點(diǎn)擊上線后,注意一下httpfox中有一行記錄的Method是POST。我們需要記錄的就是其中的POST Data中的userName和userPwd。以及Headers中的數(shù)據(jù)。還有POST到的URL地址。

如圖:

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

我這里使用了python中的requests庫(kù)。

將獲取到的URL地址、userName、userPwd、Headers填入代碼中對(duì)應(yīng)的位置。

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

可以直接運(yùn)行python程序,如圖:

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

或者可以用pyinstaller庫(kù)生成exe文件再運(yùn)行,如圖:

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本

四、總結(jié)

我這里設(shè)置了一個(gè)死循環(huán),讓程序每隔10s檢測(cè)一下是否能連上網(wǎng),若可以連上則輸出“一切正常”然后接著循環(huán),若不能連上,則輸出“斷網(wǎng)了”然后重新連網(wǎng)。我們可以對(duì)程序設(shè)置開(kāi)機(jī)自啟動(dòng)。這樣,開(kāi)機(jī)也就不需要再手動(dòng)去連網(wǎng)了。

以上是“python爬蟲(chóng)如何實(shí)現(xiàn)校園網(wǎng)自動(dòng)重連腳本”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI