【Python爬虫】教务处模拟登陆
Python2模拟登陆获取cookie
import urllib
import urllib2
import cookielib filename = 'cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) #设置请求参数
values = {}
values['__VIEWSTATE'] = "******"
values['tbxUserID'] = "XXXXXXX"
values['InputPwd'] = "XXXXXX"
values['btnLogin.x'] = "55"
values['btnLogin.y'] = "23"
postdata = urllib.urlencode(values) #登录教务系统的URL
loginUrl = 'http://yjsgl.***.edu.cn/login.aspx'
#模拟登录,并把cookie保存到变量
#设置header
user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
opener.addheaders.append( ('Host', 'yjsgl.fzu.edu.cn') )
opener.addheaders.append( ('User-Agent', user_agent) )
opener.addheaders.append( ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8') )
opener.addheaders.append( ('Accept-Language', 'zh-CN,zh;q=0.8') )
opener.addheaders.append( ('Accept-Encoding', 'gzip, deflate') )
opener.addheaders.append( ('Connection', 'keep-alive') )
opener.addheaders.append( ('Referer', 'http://yjsgl.fzu.edu.cn/login.aspx') )
try:
result = opener.open(loginUrl,postdata)
except opener.URLError, e:
print e.reason for item in cookie:
print 'Name = '+item.name
print 'Value = '+item.value #保存cookie到cookie.txt中
cookie.save(ignore_discard=True, ignore_expires=True)
#利用cookie请求访问另一个网址,此网址是成绩查询网址
gradeUrl = 'http://yjsgl.***.edu.cn/xsgl/xsxx_show.aspx'
#请求访问成绩查询网址
result = opener.open(gradeUrl)
print result.read()
直接从本地读取cookie模拟登陆
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 14 16:12:55 2017 @author: zeze
""" import cookielib
import urllib2 #创建MozillaCookieJar实例对象
cookie = cookielib.MozillaCookieJar()
#从文件中读取cookie内容到变量
cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)
#创建请求的request
Url = urllib2.Request("http://yjsgl.***.edu.cn/xsgl/xsxx_show.aspx")
#利用urllib2的build_opener方法创建一个opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open(Url)
print response.read()
Python3版本
import urllib
#import cookielib
import http.cookiejar filename = 'cookie.txt'
# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
#设置一个cookie处理器,它负责从服务器下载cookie到本地,并且在发送请求时带上本地的cookie
cookie = http.cookiejar.MozillaCookieJar(filename)
#opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
cookie_support = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(cookie_support, urllib.request.HTTPHandler)
urllib.request.install_opener(opener) # 设置请求参数
values = {}
values['__VIEWSTATE'] = "/wEPDwUJODA3MTI1345b2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAgUIYnRuTG9naW4FDEltYWdlQnV0dG9uMQ=="
values['tbxUserID'] = "1345"
values['InputPwd'] = "5345e"
values['btnLogin.x'] = "55"
values['btnLogin.y'] = "23"
#postdata = urllib.urlencode(values)
postdata=urllib.parse.urlencode(values).encode('utf-8') # 登录教务系统的URL
loginUrl = 'http://yjsgl.123.e34u.cn/login.aspx'
# 模拟登录,并把cookie保存到变量
# 设置header
user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
opener.addheaders.append(('Host', 'yjsgl.fzu.edu.cn'))
opener.addheaders.append(('User-Agent', user_agent))
opener.addheaders.append(
('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'))
opener.addheaders.append(('Accept-Language', 'zh-CN,zh;q=0.8'))
opener.addheaders.append(('Accept-Encoding', 'gzip, deflate'))
opener.addheaders.append(('Connection', 'keep-alive'))
opener.addheaders.append(('Referer', 'http://yjsgl.f234u.cn/login.aspx'))
try:
result = opener.open(loginUrl, postdata)
except opener.URLError as e:
print(e.reason) for item in cookie:
print('Name = ' + item.name)
print('Value = ' + item.value) # 保存cookie到cookie.txt中
cookie.save(ignore_discard=True, ignore_expires=True)
# 利用cookie请求访问另一个网址,此网址是成绩查询网址
gradeUrl = 'http://yjsgl.fzu.edu.cn/xsgl/xsxx_show.aspx'
# 请求访问成绩查询网址
result = opener.open(gradeUrl)
print("返回的结果")
print(result.read().decode('utf8'))#先看.info 解决乱码的问题 text = result.read()
save_path="D:/snatch2.txt"
# save_path 's file unnecessary to be exist
f_obj = open(save_path,'wb')
f_obj.write(text)
print("snatch successfully.")
【Python爬虫】教务处模拟登陆的更多相关文章
- Python爬虫之模拟登录微信wechat
不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...
- Python实现网站模拟登陆
一.实验简介 1.1 基本介绍 本实验中我们将通过分析登陆流程并使用 Python 实现模拟登陆到一个实验提供的网站,在实验过程中将学习并实践 Python 的网络编程,Python 实现模拟登陆的方 ...
- Python爬虫-百度模拟登录(二)
上一篇-Python爬虫-百度模拟登录(一) 接上一篇的继续 参数 codestring codestring jxG9506c1811b44e2fd0220153643013f7e6b1898075 ...
- Python爬虫-百度模拟登录(一)
千呼万唤屎出来呀,百度模拟登录终于要呈现在大家眼前了,最近比较忙,晚上又得早点休息,这篇文章写了好几天才完成.这个成功以后,我打算试试百度网盘的其他接口实现.看看能不能把服务器文件上传到网盘,好歹也有 ...
- pytho简单爬虫_模拟登陆西电流量查询_实现一键查询自己的校园网流量
闲来无事,由于校园内网络是限流量的,查询流量很是频繁,于是萌生了写一个本地脚本进行一键查询自己的剩余流量. 整个部分可以分为三个过程进行: 对登陆时http协议进行分析 利用python进行相关的模拟 ...
- python作业:模拟登陆(第一周)
模拟登陆作业需求: 1. 用户输入帐号密码进行登陆 2. 用户信息保存在文件内 3. 用户密码输入错误三次后锁定用户 额外实现功能: 1.提示输入错误次数 2.输入已锁定用户会提示 3.用户不存在会提 ...
- python之scrapy模拟登陆人人网
1.settings.py主要配置信息,包括USER_AGENT等 # -*- coding: utf-8 -*- # Scrapy settings for renren project # # F ...
- Python 爬虫之模拟登录
最近应朋友要求,帮忙爬取了小红书创作平台的数据,感觉整个过程很有意思,因此记录一下.在这之前自己没怎么爬过需要账户登录的网站数据,所以刚开始去看小红书的登录认证时一头雾水,等到一步步走下来,最终成功, ...
- 爬虫——cookie模拟登陆
cookie适用于抓取需要登录才能访问的页面网站 cookie和session机制 http协议为无连接协议,cookie: 存放在客户端浏览器,session: 存放在Web服务器 人人网登录案例 ...
随机推荐
- TensorFlow实战
TensorFlow实战:Chapter-1(TensorFlow介绍) TensorFlow实战:Chapter-2(TensorFlow入门) TensorFlow实战:Chapter-3(CNN ...
- Swift 构造与析构
前言 与 OC 一样,Swift 中也存在构造和析构过程.不同的是,OC 中的构造方法和析构方法只是普通的方法,而 Swift 中构造器和析构器是一种特殊的结构. 1.构造器 在 Swift 中,类或 ...
- Win7系统计算机中Msvcr100.dll丢失的解决办法
1.使用安全卫士里的人工服务. 在搜索框里输入msvcr100.dll. 点击查找方案. 2.点击msvcr100.dll问题后面的立即修复. 只要等待片刻就好了.
- Access2007 操作或事件已被禁用模式阻止解决办法
在“消息栏”上,单击“选项”. 在“Microsoft Office 安全选项”对话框中,单击“启用此内容”,然后单击“确定”. 如果没有看到消息栏在“数据库工具”选项卡上的“显示/隐藏”组中,单击“ ...
- mysql - tmp_table_size & max_heap_table_size
Command-Line Format --tmp_table_size=# System Variable Name tmp_table_size Variable Scope Global, Se ...
- 真正理解 git fetch, git pull 以及 FETCH_HEAD
真正理解 git fetch, git pull 要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge .远程repo, branch . commi ...
- 跟我学SharePoint 2013视频培训课程——使用垃圾箱(5)
课程简介 第5天,在SharePoint 2013中 使用垃圾箱 视频 SharePoint 2013 交流群 41032413
- 第2章 Python基础-字符编码&数据类型 列表&元祖 练习题
1.创建一个空列表,命名为names,往里面添加old_driver,rain,jack,shanshan,peiqi,black_girl元素 names = ["old_driver&q ...
- Matlab 2016b 正式版下载
Matlab 2016b 正式版下载 这两天为完成最优化大作业,zyy又开始鼓捣matlab了.之前我装的是matlab 2013a,发现不支持求解整数规划,遂更新了一下. 下载地址 链接:http ...
- MySQL的DDL语句、DML语句与DCL语句
背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...