python模拟自动登录网站(urllib2)

news/2024/5/11 18:43:18/文章来源:https://blog.csdn.net/xgocn/article/details/85130734

 

不登录打开网页:

import urllib2
request = urllib2.Request('http://www.baidu.com')
response = urllib2.urlopen(request).read()
print response

 保存网页图片(https://www.baidu.com/img/bd_logo1.png):

复制代码

picurl = 'https://www.baidu.com/img/bd_logo1.png' #定义图片的url地址
req = urllib2.Request(picurl)
data = urllib2.urlopen(req).read()file=open('d:\\zaa.jpg','wb') #将图片保存为名为zaa.jpg的图片
file.write(data)
file.flush()
file.close()

复制代码

 

模拟自动登录zabbix:

复制代码

import urllib2,cookielib,urllib
#定义登录地址
login_url = 'http://10.16.2.4/zabbix/index.php'
#定义登录所需要用的信息,如用户名、密码等,详见下图,使用urllib进行编码
login_data = urllib.urlencode({"name": 'admin',"password": 'password',"autologin": 1,"enter": "Sign in"})#设置一个cookie处理器,它负责从服务器下载cookie到本地,并且在发送请求时带上本地的cookie  
cj = cookielib.CookieJar() #获取Cookiejar对象(存在本机的cookie消息)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) #自定义opener,并将opener跟CookieJar对象绑定
urllib2.install_opener(opener) #安装opener,此后调用urlopen()时都会使用安装过的opener对象
response=opener.open(login_url,login_data).read() #访问登录页,自动带着cookie信息
print response #返回登陆后的页面源代码

复制代码

zabbix登录页面内容:

 

有的页面登录时会post到其他页面,查看登录页面的form中的action地址,可能需要构造header头信息:

复制代码

#发送头信息
headers = {'Referer':'http://10.16.2.4/zabbix/index.php','Host':'10.16.2.4', #可以不要,一般两项就可以'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'
}
#定义登录地址
login_url = 'http://10.16.2.4/zabbix/index.php'
#定义登录所需要用的信息,如用户名、密码等,使用urllib进行编码
login_data = urllib.urlencode({"name": 'admin',"password": 'password',"autologin": 1,"enter": "Sign in"})#设置一个cookie处理器,它负责从服务器下载cookie到本地,并且在发送请求时带上本地的cookie  
cj = cookielib.CookieJar() #获取Cookiejar对象(存在本机的cookie消息)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) #自定义opener,并将opener跟CookieJar对象绑定
urllib2.install_opener(opener) #安装opener,此后调用urlopen()时都会使用安装过的opener对象urllib2.urlopen(login_url)#打开登录主页面(他的目的是从页面下载cookie,这样我们在再送post数据时就有cookie了,否则发送不成功) #通过urllib2提供的request方法来向指定Url发送我们构造的数据,并完成登录过程    
req=urllib2.Request(post_url,login_data,headers) #post_url需要在请求过程中自己得出
response=urllib2.urlopen(req)
print response.read()
response.close()

复制代码

在ie中手动登录后,可以看到相应的header头信息,如下:

 

模拟登录piao.x.com(先使用chrome抓包,输入一个错误的账号密码)

复制代码

import urllib,urllib2,cookielibusername='name'
password='pass'
loginurl='http://piao.x.com/loginHandler.ashx' #此为在登录过程中post到的页面cj = cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.8.1000 Chrome/30.0.1599.101 Safari/537.36','Referer':'http://piao.x.com/login/login','Content-Type':'text/html'}
for key in headers: #增加多个headeropener.addheaders.append((key,headers[key]))data = urllib.urlencode({"username":username,"password":password}) #使用google可以看到此处的用户密码为明文发送,格式为username=username&password=password,如下图所示。
opener.open(loginurl,data)
print opener.open('http://piao.x.com/#dGlja2V0').read() #登录成功后可以打开其他页面。

复制代码

Form Data部分为需要Post到Server的参数,piao登录需要Post的参数是2个,zabbix登录需要Post的参数是4个 。

piao login:

 zabbix login:

如上图所示,查看Respons Headers部分,可以看到其中的Set-Cookie,该cookie可以在后面的站内访问使用,使用urllib2也可以看到该部分内容:

复制代码

import cookielib,urllib,urllib2
zabbix_url="http://10.16.2.4/zabbix/index.php"
zabbix_header = {"Content-Type":"application/json"}
zabbix_user   = "admin"
zabbix_pass   = "password"cj = cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
data = urllib.urlencode({"name":zabbix_user,"password":zabbix_pass,'form_refresh':1,'enter':'Sign in'}) 
response = opener.open(zabbix_url,data)
print response.headers #打印Server 的response header头部分内容:返回:
Date: Wed, 25 May 2016 08:07:17 GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
X-Powered-By: PHP/5.4.16
Set-Cookie: zbx_sessionid=bbc97766e8c132a56f2d016a6963219a
Set-Cookie: PHPSESSID=v8sno86fnc19iqgltipae0l2d2; path=/zabbix/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=v8sno86fnc19iqgltipae0l2d2; path=/zabbix/
Set-Cookie: PHPSESSID=v8sno86fnc19iqgltipae0l2d2; path=/zabbix/
Set-Cookie: PHPSESSID=v8sno86fnc19iqgltipae0l2d2; path=/zabbix/
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

复制代码

在urllib2中不再使用用户名密码,直接使用上面得到的cookie访问站内页面:

复制代码

import cookielib,urllib,urllib2
zabbix_url="http://10.16.2.4/zabbix/index.php"
zabbix_header = {"Content-Type":"application/json"}cj = cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))zabbix_header = {'cookie':'zbx_sessionid=bbc97766e8c132a56f2d016a6963219a'} #使用前面得到的cookie
for key in zabbix_header: #增加多个header,把cookie放到header中,访问server时使用该cookieopener.addheaders.append((key,zabbix_header[key]))print opener.open('http://10.16.2.4/zabbix/tr_status.php?fullscreen=0&groupid=0&hostid=0&show_triggers=1&ack_status=1&show_events=1&show_severity=0&txt_select=&application=&inventory%5B0%5D%5Bfield%5D=type&inventory%5B0%5D%5Bvalue%5D=&filter_set=Filter').read() #该页面可以直接访问,不再需要使用用户名密码等信息。

复制代码

 

参考:http://www.cnblogs.com/sysu-blackbear/p/3629770.html 保存cookie到本地文件

      http://www.2cto.com/kf/201401/275152.html 详细,带有http具体访问过程

     http://www.jb51.net/article/63759.htm 简明

    http://www.blogjava.net/hongqiang/archive/2012/08/01/384552.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_764720.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【超实用】前端超好用网站推荐 --- 持续更新

一、 矢量图标库,logo制作 与 icon图标生成网站 在线制作ico图标 : https://www.bitbug.net/阿里巴巴矢量图标库: https://www.iconfont.cn/favicon制作,在线工具: https://tool.lu/favicon/免费logo制作网一:http://www.diugai.com/免费log…

java支付宝开发-02-手机网站支付

源码已上传github,欢迎专注:https://github.com/shirayner/alipay-wap 一、基础部分 1.手机网站支付产品介绍 1.1 阅读官方介绍: 手机网站支付产品介绍 1.2 看完官方的介绍之后,可以做出如下总结: 通过接入此接口&…

浅析:SEO是什么意思?

搜索引擎优化(SEO)简单理解:它是网络推广的一种形式,简单来说就是通过seo优化,调整网站内部与网站外部的结构,使得自己的网站能够与搜索引擎更加友好,从而提升网站目标关键词在搜索引擎上的排名…

域名怎么查询是否被微信封 微信检测网站拦截查询

背景 经常遇到一些公司做活动因为一个 h5 页面被分享多次遭到微信拦截,导致所有的分享都白做了。 所以就有一个想法,能不能实时监测这个 h5 的 URL 一单发现被拦截 就立马更换 域名或 url 在网上看到好多借口,但是都是付费 api 。 解决方案 …

如何使用阿里云搭建wordpress网站(图文教程+小白专用+Linux版)?...

【声明】 在任何云服务器上安装wordpress网站都是异曲同工,操作系统分为window和Linux。在这里,我选择linux操作系统来搭建wordpress网站。 如果要了解基本的网站搭建流程,请看文章:如何低成本建立属于自己的网站? ht…

想获得网站访问者的联系方式吗,这篇文章全讲透了

2019独角兽企业重金招聘Python工程师标准>>> 随着大数据和人工智能的火爆,网络爬虫也被大家熟知起来。随之也出现一个问题,爬取隐私数据是违法的。其实,网络爬虫作为一门技术,技术本身是不违法的,且在大多数…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点…

网站跟踪(web tracking)的原理

网站跟踪并不是什么新的技术,而只是一种比较常见的应用,甚至都谈不上新。这里想跟大家分享一下,里面有我的一些想法和思考,如果有不准确的地方,还请不吝赐教。 为什么要跟踪 现在大家对隐私都比较敏感,而…

反网站跟踪的原理

这是一篇论文的读书笔记“I DO Not Know What You Visited Last Summer: Protecting Users from Third-party Web Tracking With TrackingFree Browser”原文链接 overview 因为该作者致力于解决网站跟踪问题,首先得明确什么是网站跟踪,请参考博客&…

php搭建锁机网站,C/C++轻松写电脑锁机程序

首先得知道cmd界面中可以对windows用户帐号进行操作在c/c中用system("")就能直接与cmd进行通信下面是代码,很简单,不再解释,我们从演示来看这两句代码的功能!# include # include # include int main(){int i 1;int a;…

url获取网站信息不包含网页源文件内的标签_爬虫入门一:爬取一个网页

首先,我们提出一个问题:网页是什么?在我看来,网页就是信息,是我们请求一个公司或者个人发给我们的信息。我们举一个例子,我们在浏览器中输入http://www.baidu.com 然后回车,就会看到我们很熟悉的…

照片欣赏网站php,php照片相册共享系统

照片相册共享系统使用的设是PHP技术和mysql数据库技术开发.该系统是高校计算机专业的毕业设计题目,主要是针对高校毕业设计进行题目的设计,系统功能简单,模块清晰,想要的朋友可以联系我.总体功能模块1 图片管理图片管理应该包括的…

nginx 使用gizp压缩提高网站的传输速度

网站的css,js ,xml,html 在传输的时候可以使用gzip压缩,提高访问速度, 网站上的图片,视频等其它多媒体文件,因为压缩效果不好,所以对于图片没有必要支压缩, 如果想要优化,可以图片的生命周期设…

增加索引会锁表吗_企业为什么要建设网站?你的网站这些问题存在吗?

原标题:企业为什么要建设网站?你的网站这些问题存在吗?如今是创业的人越来越多。很多人纷纷都注册了自己的公司,想自己创业,而多数人创业的时候,想到的第1点就是先建立一个自己的网站。那么你建立自己网站的…

flask session_用Flask写一个图书作者管理网站(附完整代码)

这次给大家带来的是一个非常小的Flask案例,首先看一下做出来的效果:我们主要分为两部分来做,这两部分分别是上图的上部分的表单和下面的列表展示。如果你还没用过 flask,可以先看一下其官方文档的快速入门:http://docs…

PHP 伪静态seo,伪静态、静态、动态网站对SEO的影响有多大?

我看过非常多的关于伪静态、静态、动态网站方面的一些知识,网上有非常多的说法,里边很多不懂装懂的人,胡说八道。甚至是有很多人转载别人的文章加工一下,就开始卖弄学问。最终的结果是,非常多的人不知道到底怎么做才对…

html 居中_SEO小龙人:HTML+CSS之display:inline-block实现三个标签并排居中显示

实现效果&#xff1a;<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equiv…

具体案例 快速原型模型_产品经理笔试知识点:白盒测试、开发模型、网站跳失率和RFM模型...

概述现今互联网产品经理的岗位的招聘原来越热门&#xff0c;笔者把网上搜集到的产品经理笔试易错题做了完整的解析和举例说明&#xff0c;每篇4道互联网产品经理笔试易错题&#xff0c;分析知识点&#xff0c;提升IT视野见识。本文主要介绍白盒测试&#xff0c;软件的几种常见开…

提升工作效率的那些网站——私藏工具推荐

提升工作效率的那些网站——私藏工具推荐 有哪些网站能提升你的工作效率&#xff1f; 分享一下那些能大幅提高工作效率的网站&#xff0c;都是我们一直在用并且认为在同类型中比较好用的。希望也能帮助到你。 梅花网—灵感素材 关于文案、新媒体的聚合网站&#xff0c;干货满…

推荐一个好玩网站,黑白照片上色、人脸识别都不是问题!

欢迎关注我的微信公号&#xff1a;小张Python! 大家好&#xff0c;我是 zeroing ~&#xff0c;今天给大家分享一个好玩的网站&#xff0c;只需把本地老照片上传&#xff0c;接下来网站就自动对黑白照片进行上色 老照片上色技术 其实已经出来很早了&#xff0c;去年 5 月份时 B…