python实现模拟登录【转】

原文网址:http://www.blogjava.net/hongqiang/archive/2012/08/01/384552.html

本文主要用python实现了对网站的模拟登录。通过自己构造post数据来用Python实现登录过程。

当 你要模拟登录一个网站时,首先要搞清楚网站的登录处理细节(发了什么样的数据,给谁发等...)。我是通过HTTPfox来抓取http数据包来分析该网 站的登录流程。同时,我们还要分析抓到的post包的数据结构和header,要根据提交的数据结构和heander来构造自己的post数据和 header。

分析结束后,我们要构造自己的HTTP数据包,并发送给指定url。我们通过urllib2等几个模块提供的API来实现request请求的发送和相应的接收。

大部分网站登录时需要携带cookie,所以我们还必须设置cookie处理器来保证cookie。

具体代码和讲解如下

    #!/usr/bin/python  

    import HTMLParser
    import urlparse
    import urllib
    import urllib2
    import cookielib
    import string
    import re  

    #登录的主页面
    hosturl = ‘******‘ //自己填写
    #post数据接收和处理的页面(我们要向这个页面发送我们构造的Post数据)
    posturl = ‘******‘ //从数据包中分析出,处理post请求的url  

    #设置一个cookie处理器,它负责从服务器下载cookie到本地,并且在发送请求时带上本地的cookie
    cj = cookielib.LWPCookieJar()
    cookie_support = urllib2.HTTPCookieProcessor(cj)
    opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
    urllib2.install_opener(opener)  

    #打开登录主页面(他的目的是从页面下载cookie,这样我们在再送post数据时就有cookie了,否则发送不成功)
    h = urllib2.urlopen(hosturl)  

    #构造header,一般header至少要包含一下两项。这两项是从抓到的包里分析得出的。
    headers = {‘User-Agent‘ : ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1‘,
               ‘Referer‘ : ‘******‘}
    #构造Post数据,他也是从抓大的包里分析得出的。
    postData = {‘op‘ : ‘dmlogin‘,
                ‘f‘ : ‘st‘,
                ‘user‘ : ‘******‘, //你的用户名
                ‘pass‘ : ‘******‘, //你的密码,密码可能是明文传输也可能是密文,如果是密文需要调用相应的加密算法加密
                ‘rmbr‘ : ‘true‘,   //特有数据,不同网站可能不同
                ‘tmp‘ : ‘0.7306424454308195‘  //特有数据,不同网站可能不同  

                }  

    #需要给Post数据编码
    postData = urllib.urlencode(postData)  

    #通过urllib2提供的request方法来向指定Url发送我们构造的数据,并完成登录过程
    request = urllib2.Request(posturl, postData, headers)
    print request
    response = urllib2.urlopen(request)
    text = response.read()
    print text
时间: 2024-10-11 02:25:52

python实现模拟登录【转】的相关文章

【好文要转】Python:模拟登录以获取新浪微博OAuth的code参数值

[转自]http://www.tuicool.com/articles/zAz6zi [原文]http://blog.segmentfault.com/hongfei/1190000000343851 在使用新浪微博提供的API时,首先需要通过认证和授权,关于这部分,大家可以参考下 这篇文章 在完成以上步骤后,大家会发现每次要使用微博API之前,都需要我们手动输入code参数的值才行. 其中,code参数的值是在浏览器的地址栏中,也就是说,只要我们能使用代码正确地模拟浏览器发包,那么也就能得到c

Python爬虫模拟登录带验证码网站

问题分析: 1.爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 2.首先得明白cookie的作用,cookie是某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据.因此我们需要用Cookielib模块来保持网站的cookie. 3.这个是要登陆的地址 http://202.115.80.153/ 和验证码地址 http://202.115.80.15

python爬虫22 | 以后我再讲python「模拟登录」我就是狗

接下来就是 学习python的正确姿势 做爬虫 绕不开模拟登录 为此小帅b给大家支了几招 python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定! 有些网站的登录很弱鸡 传个用户名和密码 来个 POST 请求就搞定了 但还是少数 大多网站还是需要验证码的 登录需要验证码 频繁请求需要验证码 为此小帅b教你如何自动识别 python爬虫20 | 小帅b教你如何识别图片验证码 python爬虫21 | 对于b站这样的滑动验证码,不好意思,照样自动识别 当然了 市面上还有许多打码验证平

【Python】模拟登录上海西南某高校校园网 (jaccount)

好久没写东西了,最近学习了一下模拟登录,以校园网为例,作一记录. 去年的时候写过一篇模拟登录的文章,用的是登录后的cookies,这种操作比较傻瓜,也不智能,不够自动化,本质还是手动登录. 这次我尝试把登录过程用python进行,预先提供账号.密码即可. 众所周知(本校兄弟姐妹),本校所有身份认证现已完全由jaccount进行,只要通过了这一层验证,就相当于登录成功了. 以登录校园邮箱为例,先分析一下登录流程: 输入邮箱网址mail....edu.cn 跳转到jaccount验证页 输入账号.密

九、Python+Selenium模拟登录

研究QQ登录规则的话,得分析大量Javascript的加密解密,比较耗时间.自己也是练习很少,短时间成功不了.所以走了个捷径. Selenium是一个WEB自动化测试工具,它运行时会直接实例化出一个浏览器,完全模拟用户的操作,比如点击链接.输入表单,点击按钮提交等.所以我们使用它可以很方便的来登录. 但是作为新手还是多多分析,尽量少用这个,以便提高自己的技术.在研究几天,在写一个自己满意的. import time # import random from bs4 import Beautifu

Python爬虫模拟登录京东获取个人信息

原文  http://www.xgezhang.com/python_crawler_jingdong.html 先上我的代码.参考了上面链接的文章 # -*- coding: utf-8 -*- # !/usr/bin/python import os import urllib2 import urllib import cookielib import re  import sys from bs4 import BeautifulSoup ''' 编码方式的设置,在中文使用时用到中文时的

python模拟登录http basic authentication网站

当访问需要认证的网站时会提示输入正确的用户和密码 如果密码错误会返回401的状态码 401 Authorization Required 通过python脚本模拟登录 #!/usr/bin/python #-*-coding:utf-8-*- import urllib2 #登录的用户名和密码 username = "root" password = "redhat" url="http://192.168.209.200/" def Func(

python模拟登录知乎

这是一个模拟登录知乎的爬虫.运行后输入用户名密码以及和程序同一目录下的验证码图片,登陆成功后能够显示你在豆瓣地昵称. #! /usr/bin/env python #! -*-coding: utf-8 -*- import json import urllib import urllib2 import cookielib class Zhihu_login(object): """登陆知乎的一个演示程序""" def __init__(sel

Python结合NC.exe 实现模拟登录&批量填表

1.工作需求 有很多事项,每个事项分为:名称.种类.时间等,需要把每个事项逐个输入到网页中并提交. 如果用人肉操作的话,流程就是先登录到网站后台,点击“添加”——>输入各项内容——>点击“保存”.然后重复这个动作100遍.如图: 2.设想的解决办法 对手工“登录”.“添加”.“保存”的全过程进行抓包,获取整个流程提交的数据,然后将其POST到服务器. 3.具体操作 3.1 抓取并分析操作时的数据 使用Chrome浏览器,打开所需登录的页面:http://222.000.36.113/ ,并输入