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调用cmd命令行制作刷博器
Jan 13 Python
python抓取百度首页的方法
May 19 Python
Python计算已经过去多少个周末的方法
Jul 25 Python
利用Python开发微信支付的注意事项
Aug 19 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
python pandas库的安装和创建
Jan 10 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
Jan 19 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
python中if及if-else如何使用
Jun 02 Python
Python入门之使用pandas分析excel数据
May 12 Python
详解Python内置模块Collections
Mar 22 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
实用函数3
2007/11/08 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
销售文员岗位职责
2013/11/29 职场文书
高一物理教学反思
2014/01/24 职场文书
小学音乐教学反思
2014/02/05 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
汽车专业求职信
2014/06/05 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
工程索赔意向书
2014/08/30 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
使用Python解决图表与画布的间距问题
2022/04/11 Python