Python模拟登陆实现代码

下面分享一个使用Python进行网站模拟登陆的小例子。

原理

使用Cookie技术,绕开网站登录验证。要使用到cookielib库。流程:

  1. 创建一个保存Cookie的容器,可选的有CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar.其相互之间的关系是CookieJar —-派生—->FileCookieJar —-派生—–>MozillaCookieJar和LWPCookieJar.
  2. 然后创建一个处理Cookie的处理器handler.通过urllib2.HTTPCookieProcessor(cookie)即可
  3. 创建一个用于开启网站的opener。即可。这个opener相比于urllib2.urlopen方法更为普通一点而已。opener = urllib2.build_opener(handler)。
  4. 然后我们就可以正常的使用opener来访问网络了。

小案例

实现的功能是模拟登录到大连理工大学的教务网站。代码如下:

# coding:UTF-8

import urllib,urllib2,cookielib

filename = r'F:\pachong\gaoqing\dlutcookie.txt'
# show cookie and save to local
cookie = cookielib.MozillaCookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
# 记得使用urllib模块进行参数的encode
postdata = urllib.urlencode({
  # 哈哈,本宫不给你们我的账号╭(╯^╰)╮
  'zjh':'xxxxxxxxx',
  'mm':'XXXXXX'
})

# 登陆到教务系统的url
url = 'http://zhjw.dlut.edu.cn/loginAction.do'

# 开始进行模拟登陆,并把cookie保存到变量
response = opener.open(url,postdata)
cookie.save(filename,ignore_discard=True,ignore_expires=True)

# 打印一下获得的cookie信息吧
for item in cookie:
  item.name + ' = ' + item.value

# 利用cookie访问另一个网址  登陆到个人成绩的URL
course_url='http://zhjw.dlut.edu.cn/xkAction.do?actionType=6'
course_header={
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586',
  'referer':'http://zhjw.dlut.edu.cn/menu/s_main.jsp'
}

result = opener.open(course_url)
print result.read()

运行结果

总结

其实对于模拟登陆而言,第一次的登陆就是为了获取那个cookie数据。然后通过我们创建的opener来完成接下来我们要进行的关键的进一步的操作。我们需要理解的就只是那个cookie的使用的流程就行了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python 模拟登陆的两种实现方法

    Python 模拟登陆的两种实现方法 有时候我们的抓取项目时需要登陆到某个网站上,才能看见某些内容的,所以模拟登陆功能就必不可少了,散仙这次写的文章,主要有2个例子,一个是普通写法写的,另外一个是基于面向对象写的. 模拟登陆的重点,在于找到表单真实的提交地址,然后携带cookie,post数据即可,只要登陆成功,我们就可以访问其他任意网页,从而获取网页内容. 方式一: import urllib.request import urllib.parse import http.cookiejar

  • Python模拟用户登录验证

    本文实例为大家分享了Python模拟用户登录验证的具体代码,供大家参考,具体内容如下 1.功能简介 此程序模拟用户登录验证的过程,实现用户名输入.黑名单检测.用户有效性判别.密码输入及验证等.用户在3次以内输入正确密码登陆成功,连续输错3次密码登陆失败,且该用户名被记录在黑名单,黑名单中的用户被锁定不能再登陆. 2.实现方法 本程序采用python语言编写,将各项任务进行分解并用定义对应的函数来处理,从而使程序结构清晰,易于维护.主要编写了四个函数: login() #登陆函数,为主函数,完成用

  • python3.0 模拟用户登录,三次错误锁定的实例

    python3.0 模拟用户登录,三次错误锁定的实例 实例如下所示: # -*- coding:utf-8 -*- #需求模拟用户登录,超过三次错误锁定不允许登陆 count = 0 #realname passwd Real_Username = "test" Real_Password = "test" #读取黑名单的内容 f = open('black_user','r') lock_file = f.read() f.close() Username = i

  • Python模拟登陆实现代码

    下面分享一个使用Python进行网站模拟登陆的小例子. 原理 使用Cookie技术,绕开网站登录验证.要使用到cookielib库.流程: 创建一个保存Cookie的容器,可选的有CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar.其相互之间的关系是CookieJar --派生-->FileCookieJar --派生-–>MozillaCookieJar和LWPCookieJar. 然后创建一个处理Cookie的处理器handler.通

  • python 模拟登陆github的示例

    # -*- coding: utf-8 -*- # @Author: CriseLYJ # @Date: 2020-08-14 12:13:11 import re import requests class GithubLogin(object): def __init__(self, email, password): # 初始化信息 self.headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2)

  • python模拟登陆,用session维持回话的实例

    python模拟登陆的几种方法 客户端向服务器发送请求,cookie则是表明我们身份的标志.而"访问登录后才能看到的页面"这一行为,恰恰需要客户端向服务器证明:"我是刚才登录过的那个客户端".于是就需要cookie来标识客户端的身份,以存储它的信息(如登录状态) 1.先在浏览器中登录,然后打开开发者选项,找到一个请求方法为POST的请求,复制Requests Headers中的cookie在爬取需要登录的页面时加上此cookies即可 import requests

  • python 模拟登陆163邮箱

    import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait def login(): acount_num = input('请输入账号:\n'

  • python模拟登陆网站的示例

    使用已有cookie登陆 使用浏览器登陆,获取浏览器中的cookie信息,来进行登陆. 我们以博客园为例,先登录博客园账号.我们访问随笔列表,在控制台我们可以看到我们登陆后浏览器的cookie 剔除一些数据统计及分析的cookie,剩下的就是登陆可能需要的.CNBlogsCookie和.Cnblogs.AspNetCore.Cookies # _ga google分析 cookie # UM_distinctid 友盟cookie # CNZZxxx CNZZcookie # __utma,__

  • python模拟登陆阿里妈妈生成商品推广链接

    淘宝官方有获取商品推广链接的API,但该API属于增值API 普通开发者没有调用权限 需要申请开通 备注:登陆采用的是阿里妈妈账号登陆非淘宝账号登陆 复制代码 代码如下: #coding:utf-8__author__ = 'liukoo'import urllib,urllib2,cookielib,refrom hashlib import md5class alimama:    def __init__(self):        self.header = {'User-Agent':

  • Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享

    支付宝十年账单上的数字有点吓人,但它统计的项目太多,只是想看看到底单纯在淘宝上支出了多少,于是写了段脚本,统计任意时间段淘宝订单的消费情况,看那结果其实在淘宝上我还是相当节约的说. 脚本的主要工作是模拟了浏览器登录,解析"已买到的宝贝"页面以获得指定的订单及宝贝信息. 使用方法见代码或执行命令加参数-h,另外需要BeautifulSoup4支持,BeautifulSoup的官方项目列表页:https://www.crummy.com/software/BeautifulSoup/bs4

  • 分享一个常用的Python模拟登陆类

    代码非常简单,而且注释也很详细,这里就不多废话了 tools.py # -*- coding:utf8 -*- ''' # ============================================================================= # FileName: tools.py # Desc: 模拟浏览器 # Author: cosven # Email: yinshaowen241@gmail.com # HomePage: www.cosven.co

  • python模拟登录百度代码分享(获取百度贴吧等级)

    复制代码 代码如下: # -*- coding: utf8 -*-'''Created on 2013-12-19 @author: good-temper''' import urllib2import urllibimport cookielibimport reimport bs4 URL_BAIDU_INDEX = u'http://www.baidu.com/';#https://passport.baidu.com/v2/api/?getapi&class=login&tpl=

随机推荐