python爬虫_实现校园网自动重连脚本的教程


Posted in Python onApril 22, 2018

一、背景

最近学校校园网不知道是什么情况,总出现掉线的情况。每次掉线都需要我手动打开web浏览器重新进行账号密码输入,重新进行登录。系统的问题我没办法解决,但是可以写一个简单的python脚本用于自动登录校园网。每次掉线后,再打开任意网页就是这个页面。

python爬虫_实现校园网自动重连脚本的教程

二、实现代码

#-*- coding:utf-8 -*-
__author__ = 'pf'
import time
import requests
class Login:
 #初始化
 def __init__(self):
  #检测间隔时间,单位为秒
  self.every = 10
 #模拟登录
 def login(self):
  print self.getCurrentTime(), u"拼命连网中..."
  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'连上了...现在开始看连接是否正常'
  except:
   print("error")
 #判断当前是否可以连网
 def canConnect(self):
  try:
   q=requests.get("http://www.baidu.com")
   if(q.status_code==200):
    return True
   else:
    return False
  except:
   print 'error'
 #获取当前时间
 def getCurrentTime(self):
  return time.strftime('[%Y-%m-%d %H:%M:%S]',time.localtime(time.time()))
 #主函数
 def main(self):
  print self.getCurrentTime(), u"Hi,欢迎使用自动登陆系统"
  while True:
   self.login()
   while True:
    can_connect = self.canConnect()
    if not can_connect:
     print self.getCurrentTime(),u"断网了..."
     self.login()
    else:
     print self.getCurrentTime(), u"一切正常..."
    time.sleep(self.every)
   time.sleep(self.every)
login = Login()
login.main()

三、解决步骤

首先需要一个用于抓包的工具。我们要抓取提交的数据以及提交到的url地址。我这里用的是firefox浏览器的httpfox插件。

python爬虫_实现校园网自动重连脚本的教程

用firefox浏览器打开登录页面,并且打开httpfox插件。在页面中输入账户名和密码点击上线后,注意一下httpfox中有一行记录的Method是POST。我们需要记录的就是其中的POST Data中的userName和userPwd。以及Headers中的数据。还有POST到的URL地址。

如图:

python爬虫_实现校园网自动重连脚本的教程

python爬虫_实现校园网自动重连脚本的教程

我这里使用了python中的requests库。

将获取到的URL地址、userName、userPwd、Headers填入代码中对应的位置。

python爬虫_实现校园网自动重连脚本的教程

可以直接运行python程序,如图:

python爬虫_实现校园网自动重连脚本的教程

或者可以用pyinstaller库生成exe文件再运行,如图:

python爬虫_实现校园网自动重连脚本的教程

python爬虫_实现校园网自动重连脚本的教程

四、总结

我这里设置了一个死循环,让程序每隔10s检测一下是否能连上网,若可以连上则输出“一切正常”然后接着循环,若不能连上,则输出“断网了”然后重新连网。我们可以对程序设置开机自启动。这样,开机也就不需要再手动去连网了。

以上这篇python爬虫_实现校园网自动重连脚本的教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
python感知机实现代码
Jan 18 Python
Python 转换文本编码实现解析
Aug 27 Python
numpy:找到指定元素的索引示例
Nov 26 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
Python使用进程Process模块管理资源
Mar 05 Python
Python matplotlib可视化实例解析
Jun 01 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
python Zmail模块简介与使用示例
Dec 19 Python
教你使用pyinstaller打包Python教程
May 27 Python
python 爬取京东指定商品评论并进行情感分析
May 27 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 Python
selenium+python实现自动登录脚本
Apr 22 #Python
python实现校园网自动登录的示例讲解
Apr 22 #Python
用Python写一段用户登录的程序代码
Apr 22 #Python
python实现简单登陆流程的方法
Apr 22 #Python
Python 实现选择排序的算法步骤
Apr 22 #Python
python学习基础之循环import及import过程
Apr 22 #Python
Python中循环引用(import)失败的解决方法
Apr 22 #Python
You might like
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
json跟xml的对比分析
2008/06/10 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
如何在python中写hive脚本
2019/11/08 Python
NumPy中的维度Axis详解
2019/11/26 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
给校长的建议书200字
2014/05/16 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
学校个人对照检查材料
2014/08/26 职场文书
迎七一演讲稿
2014/09/12 职场文书
秋冬农业生产标语
2014/10/09 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书