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爬虫】教务处模拟登陆的更多相关文章

  1. Python爬虫之模拟登录微信wechat

    不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...

  2. Python实现网站模拟登陆

    一.实验简介 1.1 基本介绍 本实验中我们将通过分析登陆流程并使用 Python 实现模拟登陆到一个实验提供的网站,在实验过程中将学习并实践 Python 的网络编程,Python 实现模拟登陆的方 ...

  3. Python爬虫-百度模拟登录(二)

    上一篇-Python爬虫-百度模拟登录(一) 接上一篇的继续 参数 codestring codestring jxG9506c1811b44e2fd0220153643013f7e6b1898075 ...

  4. Python爬虫-百度模拟登录(一)

    千呼万唤屎出来呀,百度模拟登录终于要呈现在大家眼前了,最近比较忙,晚上又得早点休息,这篇文章写了好几天才完成.这个成功以后,我打算试试百度网盘的其他接口实现.看看能不能把服务器文件上传到网盘,好歹也有 ...

  5. pytho简单爬虫_模拟登陆西电流量查询_实现一键查询自己的校园网流量

    闲来无事,由于校园内网络是限流量的,查询流量很是频繁,于是萌生了写一个本地脚本进行一键查询自己的剩余流量. 整个部分可以分为三个过程进行: 对登陆时http协议进行分析 利用python进行相关的模拟 ...

  6. python作业:模拟登陆(第一周)

    模拟登陆作业需求: 1. 用户输入帐号密码进行登陆 2. 用户信息保存在文件内 3. 用户密码输入错误三次后锁定用户 额外实现功能: 1.提示输入错误次数 2.输入已锁定用户会提示 3.用户不存在会提 ...

  7. python之scrapy模拟登陆人人网

    1.settings.py主要配置信息,包括USER_AGENT等 # -*- coding: utf-8 -*- # Scrapy settings for renren project # # F ...

  8. Python 爬虫之模拟登录

    最近应朋友要求,帮忙爬取了小红书创作平台的数据,感觉整个过程很有意思,因此记录一下.在这之前自己没怎么爬过需要账户登录的网站数据,所以刚开始去看小红书的登录认证时一头雾水,等到一步步走下来,最终成功, ...

  9. 爬虫——cookie模拟登陆

    cookie适用于抓取需要登录才能访问的页面网站 cookie和session机制 http协议为无连接协议,cookie: 存放在客户端浏览器,session: 存放在Web服务器 人人网登录案例 ...

随机推荐

  1. Virtualbox虚拟机克隆

    Vmware Workstation可以提供虚拟机的克隆,可以安装好虚拟机之后可以非常方便的复制一个虚拟机,这样在搭建多台虚拟机的环境下非常方便,无需一台台的安装系统,但是Virtualbox在图形界 ...

  2. 什么是EPEL 及 Centos上安装EPEL

    RHEL以及他的衍生发行版如CentOS为了稳定,官方的rpm repository提供的rpm包为了服务器安全稳定更新往往是很滞后的,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的 ...

  3. sudo: add-apt-repository: command not found

    错误来啦:sudo: add-apt-repository:command not found      网上解决办法是直接安装工具包 命令:sudo apt-get install python-s ...

  4. 微信支付HTTPS服务器证书验证指引

    1. 背景介绍 2. 常见问题 3. 验证证书 4. 安装证书 背景介绍 微信支付使用HTTPS来保证通信安全, 在HTTPS服务器上部署了由权威机构签发的证书, 用于证明微信支付平台的真实身份. 商 ...

  5. python学习笔记——urllib库中的parse

    1 urllib.parse urllib 库中包含有如下内容 Package contents error parse request response robotparser 其中urllib.p ...

  6. RemoteDesktopManager 简单使用说明

    最近项目需要在多台window系统上,安装应用,没错,是window orz..没有了secureCRT putty等好用的窗体工具,真的挺难受的. 爱折腾的博主,百度了下,发现RemoteDeskt ...

  7. C语言中 不定义结构体变量求成员大小

    所谓的求成员大小, 是求成员在该结构体中 用 sizeof(结构体名.结构体成员名) 求来的. 很多时候我们需要知道一个结构体成员中的某个成员的大小, 但是我们又不需要定义该结构体类型的变量(定义的话 ...

  8. Unix考古记:一个“遗失”的shell

    谨以此文纪念伟大的计算机科学巨匠Ken Thompson和Dennis Ritchie,并同时向其他所有为Unix发展做出贡献的黑客致敬. 历史的尘埃 Unix作为一个举世闻名的操作系统已有40余年的 ...

  9. 【转】完全用Linux工作

    我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. NU/Linux 不是每个人都想用的.如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了. 我不是 ...

  10. go test命令參数问题

    go test命令參数问题 在使用go test对go代码进行单元測试的时候,遇到关于命令參数的问题.google了一下,没有找到非常好的说明,其实就是一些细节而已. 问题是这种,在进行单元測试的时候 ...