用Python模拟登录网站

前面简单提到了 Python 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序。简单说一下流程:先用cookielib获取cookie,再用获取到的cookie,进入需要登录的网站。

01 #  -*- coding: utf-8 -*-
02 # !/usr/bin/python
03  
04 import urllib2
05 import urllib
06 import cookielib
07 import re
08  
09 auth_url = 'http://www.nowamagic.net/'
10 home_url = 'http://www.nowamagic.net/';
11 # 登陆用户名和密码
12 data={
13     "username":"nowamagic",
14     "password":"pass"
15 }
16 # urllib进行编码
17 post_data=urllib.urlencode(data)
18 # 发送头信息
19 headers ={
20     "Host":"www.nowamagic.net",
21     "Referer""http://www.nowamagic.net"
22 }
23 # 初始化一个CookieJar来处理Cookie
24 cookieJar=cookielib.CookieJar()
25 # 实例化一个全局opener
26 opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
27 # 获取cookie
28 req=urllib2.Request(auth_url,post_data,headers)
29 result = opener.open(req)
30 # 访问主页 自动带着cookie信息
31 result = opener.open(home_url)
32 # 显示结果
33 print result.read()

再附带几个示例程序:

1. 使用已有的cookie访问网站

01 import cookielib, urllib2
02  
03 ckjar = cookielib.MozillaCookieJar(os.path.join('C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default','cookies.txt'))
04  
05 req = urllib2.Request(url, postdata, header)
06  
07 req.add_header('User-Agent', \
08     'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
09  
10 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )
11  
12 = opener.open(req)
13 htm = f.read()
14 f.close()

2. 访问网站获得cookie,并把获得的cookie保存在cookie文件中

01 import cookielib, urllib2
02  
03 req = urllib2.Request(url, postdata, header)
04 req.add_header('User-Agent', \
05     'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
06  
07 ckjar = cookielib.MozillaCookieJar(filename)
08 ckproc = urllib2.HTTPCookieProcessor(ckjar)
09  
10 opener = urllib2.build_opener(ckproc)
11  
12 = opener.open(req)
13 htm = f.read()
14 f.close()
15  
16 ckjar.save(ignore_discard=True, ignore_expires=True)

3. 使用指定的参数生成cookie,并用这个cookie访问网站

01 import cookielib, urllib2
02  
03 cookiejar = cookielib.CookieJar()
04 urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
05 values = {'redirect':", 'email':'abc@abc.com',
06           'password':'password''rememberme':", 'submit':'OK, Let Me In!'}
07 data = urllib.urlencode(values)
08  
09 request = urllib2.Request(url, data)
10 url = urlOpener.open(request)
11 print url.info()
12 page = url.read()
13  
14 request = urllib2.Request(url)
15 url = urlOpener.open(request)
16 page = url.read()
17 print page

【py登陆】python模拟登录的更多相关文章

  1. 忘记秘密利用python模拟登录暴力破解秘密

    忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...

  2. [Python] Python 模拟登录,并请求

    Python 模拟登录,并请求 # encoding: utf- import requests import socket import time socket.setdefaulttimeout( ...

  3. 【Python数据分析】Python模拟登录(一) requests.Session应用

    最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...

  4. Python模拟登录实战(三)

    目标:模拟登录知乎 代码如下: #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'ziv·chan' import re impor ...

  5. Python模拟登录实战(一)

    今天,学习了模拟登录新浪微博.模拟登录主要有两种方式,一.利用Cookie:二.模仿浏览器的请求,发送表单. 法一: Cookie:指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密 ...

  6. Python模拟登录的几种方法

    目录 方法一:直接使用已知的cookie访问 方法二:模拟登录后再携带得到的cookie访问 方法三:模拟登录后用session保持登录状态 方法四:使用无头浏览器访问 正文 方法一:直接使用已知的c ...

  7. Python模拟登录wap版百度贴吧+自己主动回贴

    模拟登录的原理都差点儿相同.大致都是这样: 打开首页获取相关cookie: 提交登陆表单(即username与password). 确认是否登录成功. 假设想了解更具体的原理与相关知识,推荐到具体解释 ...

  8. Python模拟登录实战(二)

    目标:1.模拟登录豆瓣,2.自动更改签名和发表说说. 代码如下: #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'ziv·chan ...

  9. [Python] 模拟登录网站(。。为了之后操作数据。。)

    我司的内部管理(Web)系统(日报)着实..(mafan).. 所以,就想自己动手增加一下便利性. 计划是, - 桌面程序 用来方便记录(按自己格式,数据随时保存到sqlite中,备用) 通过一览来确 ...

随机推荐

  1. 再谈CocoaPods

    1. 简介 java语言的第三方库管理工具是Maven,Node.js的第三方库管理工具是npm,而ios的第三方库管理工具是CocoaPods. CocoaPods 的原理是将所有的依赖库都放到名为 ...

  2. eclipse中hibernate逆向工程出错

    问题已解决!原因是Console configuration的信息编辑有误. 上图中Database connection,如果有已编辑好的可用连接信息就选择,没有的情况下就new一个 如果没有Dri ...

  3. Java学习-005-初学常用的几个经典循环控制源代码

    最近一段时间公司 App 改版,一直处在需求评审.代码评审.测试计划.测试用例.用例评审.用例执行.缺陷管理.测试总结的循环中,因而博客也好久没有更新了.虽然工作确实忙了点,但是也是自己懒惰了,从今天 ...

  4. 将一个UIView对象的内容保存为UIImage

    + (UIImage*)imageFromView:(UIView*)view{ UIGraphicsBeginImageContextWithOptions(view.bounds.size, YE ...

  5. less 命令(转)

    less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...

  6. Review of Segmentation for Medical image analysis

    成像方法:X射线,CT,MRI,SPECT,PET等 分割的定义: Image segmentation is a procedure for extracting the region of int ...

  7. Android PickerView滚动选择器的使用方法

    手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器,前几天用手机刷了MIUI,发现自带的那个时间选择器效果挺好看的,于是就自己仿写了一个,权当练手.先来看效果: 效果还行吧?实现思路就是自定 ...

  8. 11月23日《奥威Power-BI报表集成到其他系统》腾讯课堂开课啦

    听说明天全国各地区都要冷到爆了,要是天气冷到可以放假就好了.想象一下大冷天的一定要在被窝里度过才对嘛,索性明天晚上来个相约吧,相约在被窝里看奥威Power-BI公开课如何?        上周奥威公开 ...

  9. 开发API文档相关问题(*.chm)

    在网上下了一个chm的文件,打开后只有目录,右侧不显示内容. 不知道是文件有问题,还是系统有问题. google了一下.解决了. 右键点击文件–属性 看到 最下面有一个提示 说是这个文件是来自其他计算 ...

  10. 前端学习——css实用技术

    一,css控制文本样式 文本相关的css属性有很多,包括: color;font-size;font-weight;text-transform(大小写uppercase等);text-decorat ...