python通过生成cookie文件,并通过cookie文件请求网站

今天有个需求需要通过cookie访问内部cmdb,获取机器等信息。上网搜罗了一下用法。记录一下

带密码直接访问的

# -*- coding: utf-8 -*-
# !/usr/bin/python
import urllib2
import urllib
import cookielib
import re
auth_url = ‘http://a.test.com/user/login‘
home_url = ‘http://a.test.com/cmdb/hosts/‘;
# 登陆用户名和密码
data={
  "username":"aaa",
  "password":"bbb"
}
# urllib进行编码
post_data=urllib.urlencode(data)
# 发送头信息
headers ={
 "Host":"a.test.com",
"Referer": "http://a.test.com"
}
# 初始化一个CookieJar来处理Cookie
cookieJar=cookielib.CookieJar()
# 实例化一个全局opener
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
# 获取cookie
req=urllib2.Request(auth_url,post_data,headers)
result = opener.open(req)
# 访问主页 自动带着cookie信息
iresult = opener.open(home_url)
# 显示结果
print iresult.read()

由于没有特定的账号来读取,只能使用自己的个人账号。所以不想一直把密码写在文件里。就准备生产一个cookie文件,后面全用这个cookie文件进行访问

先生产cookie文件

# -*- coding: utf-8 -*-
# !/usr/bin/python
import urllib2
import urllib
import cookielib
import re
auth_url = ‘http://a.test.com/user/login‘
# 登陆用户名和密码
data={
  "username":"aaa",
  "password":"bbb"
}
# urllib进行编码
post_data=urllib.urlencode(data)
# 发送头信息
headers ={
  "Host":"a.test.com",
"Referer": "http://a.test.com"
}
# 初始化一个CookieJar来处理Cookie
cookieJar=cookielib.CookieJar()
# 实例化一个全局opener
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
req = urllib2.Request(auth_url, post_data, headers)
req.add_header(‘User-Agent‘,   ‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)‘)
filename = ‘cookie.txt‘
ckjar = cookielib.MozillaCookieJar(filename)
ckproc = urllib2.HTTPCookieProcessor(ckjar)
opener = urllib2.build_opener(ckproc)
f = opener.open(req)
htm = f.read()
f.close()
ckjar.save(ignore_discard=True, ignore_expires=True)

第二步,通过这个cookie文件访问,第一步生产完cookie文件后,脚本就可以清理掉了

# -*- coding: utf-8 -*-
# !/usr/bin/python
import cookielib
import urllib2
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
cookie=cookielib.MozillaCookieJar()
cookie.load(‘cookie.txt‘,ignore_expires=True,ignore_discard=True)
req=urllib2.Request(‘http://a.test.com/cmdb/hosts/ ‘)
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
response=urllib2.urlopen(req)
print response.read()
时间: 2024-10-10 11:56:09

python通过生成cookie文件,并通过cookie文件请求网站的相关文章

[zz]【整理】Python中Cookie的处理:自动处理Cookie,保存为Cookie文件,从文件载入Cookie

http://www.crifan.com/python_auto_handle_cookie_and_save_to_from_cookie_file/ #!/usr/bin/python # -*- coding: utf-8 -*- """ Function: [整理]Python中Cookie的处理:自动处理Cookie,保存为Cookie文件,从文件载入Cookie http://www.crifan.com/python_auto_handle_cookie_an

Python爬虫入门(6):Cookie的使用

为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了. 在此之前呢,我们必须先介绍一个opener的概念. 1.Opener 当你获取一个URL你使用一个opener(一个urllib2.OpenerDirector的实例).在前面,我

Python学习教程:必须掌握的Cookie知识点都在这里了

今天我们来全面了解一下Cookie(小饼干)相关的知识!篇幅有点长,在学习Python的伙伴或者有兴趣的你,可以耐心看哦! 相信很多同学肯定听过Cookie这个东西,也大概了解其作用,但是其原理以及如何设置,可能没有做过web的同学并不是非常清楚,以前的Python学习教程中其实有跟大家提到过,那今天就带大家详细了解下Cookie相关的知识! 一.诞生背景 爬虫系列教程的第一篇:HTTP详解中我们便说过HTTP的五大特点,而其中之一便是:无状态 HTTP无状态:服务器无法知道两个请求是否来自同一

Python生成windows可执行的exe文件

参考: https://segmentfault.com/a/1190000016087451 https://www.cnblogs.com/aoede-jacqueline/archive/2019/07/25/11244714.html 为什么要生成可执行文件 不需要安装对应的编程环境 可以将你的应用闭源 用户可以方便.快捷的直接使用 缺点:程序很大. 安装pyinstaller 在设置好conda软件源为清华开源站之后,Windows开始菜单以管理员模式运行Anaconda Prompt

(24)Python实现递归生成或者删除一个文件目录及文件

import os,errno #基本工具类 #①递归生成输入的路径下面的文件夹或文件 #②递归删除输入的路径下面的文件夹及文件 ''' param : dirPath return : AuthorCreated by Wu Yongcong 2017-8-17 function:remove a input dirPath and the files/dictionary under it ''' def removeDir(dirPath): if not os.path.isdir(di

详解 Cookie 纪要(vue.cookie,jquery.cookie简化)

今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://www.jeffjade.com/2016/10/31/115-summary-of-cookie/ 原文如下,记录到此供以后查阅并希望好文章能被更多需要的人看到   背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性.在JavaScript中可以通过 document.c

关于cookie的文章(cookie与session机制)

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. 1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个

利用Python自动生成暴力破解的字典

Python是一款非常强大的语言.用于测试时它非常有效,因此Python越来越受到欢迎. 因此,在此次教程中我将聊一聊如何在Python中生成字典,并将它用于任何你想要的用途. 前提要求 1,Python 2.7(对于Python 3.x的版本基本相同,你只需要做一些微小调整) 2,Peace of mine(作者开的一个玩笑,这是一首歌名) 如果你用virtualenv搭建Python开发环境,请确保已经安装了itertools.因为我们将会用到itertools生成字典.我们将一步一步地演示

浅谈 php 采用curl 函数库获取网页 cookie 和 带着cookie去访问 网页的方法!!!!

由于近段时间帮朋友开发一个能够查询正方教务系统的微信公众平台号.有所收获.这里总结下个人经验. 开讲前,先吐槽一下新浪云服务器,一个程序里的   同一个函数  在PC测试可以正常运行,在它那里就会挂的现象. 老样子,我将在代码里注释清楚.使用下面的函数,将会获得两种形式的 cookie,一种保存在文件中,一种直接以变量的形式返回, 经验提示: 有时候,在不同的代码运行环境中,带着文件cookie 去访问会成功,而变量却失败,有时候却想法.不过, 目前,这两种方法总有一种会成功. 1 functi

python直接生成exe的方法

一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序.py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序.py2exe是发布在开源许可证下的.目前只有python2.x的才有对应版本的.二.安装py2exe 从http://prdownloads.sourc