python模拟艺龙网登录带验证码输入

1.使用urllib与urllib2包

2.使用cookielib自动管理cookie

3.360浏览器F12抓信息

登录请求地址和验证码地址都拿到了如图

 # -*- coding: utf-8 -*-

import urllib2
import urllibimport cookielib

‘‘‘
思路:
1.通过cookie对象下载验证码图片到本地
2.手工填写验证码
3.登录
4.拿到返回的登录信息
‘‘‘

#将cookie绑定到对象opener,cookie由cookielib自动管理
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)

#验证码url和登录url
codeurl = ‘https://secure.elong.com/passport/getValidateCode‘
loginurl=‘https://secure.elong.com/passport/ajax/elongLogin‘

#根据验证码地址,下载图片到d:/test.gif
picture = opener.open(codeurl).read()
local = open(‘d:/test.gif‘,‘wb‘)
local.write(picture)
local.close()

#打开本验证码图片,填写验证码
codePic = raw_input(‘input please:‘)

#登录post fromData数据
postData = {‘userName‘:‘13718651238‘,
            ‘passwd‘:‘abcdef0120‘,
            ‘validateCode‘:codePic,
            ‘rememberMe‘:‘false‘}

#获取的头信息
headers = {
‘Accept‘: ‘*/*‘,
‘Accept-Language‘: ‘zh-CN,zh;q=0.8‘,
‘Connection‘: ‘keep-alive‘,
‘Content-Type‘: ‘application/x-www-form-urlencoded; charset=UTF-8‘,
‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36‘,
}

data = urllib.urlencode(postData)#将数据转换为key1&value&key2&value
request = urllib2.Request(loginurl,data,headers)#发起登录请求
response = opener.open(request)#根据最开始获取的的cookie对象,获取响应信息
result = response.read()#读取
print result

执行一下,手工输入验证码,成功信息:

时间: 2024-11-01 14:59:20

python模拟艺龙网登录带验证码输入的相关文章

php使用curl模拟登录带验证码的网站

需求是这样的,需要登录带验证码的网站,获取数据,但是不可能人为一直去记录数据,想通过自动采集的方式进行,如下是试验出来的结果代码!有需要的可以参考下! <?php namespace Home\Controller; use Think\Controller; class LoginController extends Controller { protected $cookieName = array('cookie_verify', 'cookie_verify'); protected $

利用Python模拟GitHub登录

最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要模拟一个网站的登录,我们必须要简单了解其大致过程. 在这里,我通过Fiddler来抓取GitHub登录的请求,从网页上登录的URL为:https://github.com/login ,抓包结果如下: 左边的是会话列表,右边的是请求和响应的数据.一般情况下,登录都是用POST请求,因为我在左边的会话列表中

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

不登录打开网页: 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 = ur

Python模拟接口登录

参考地址:https://blog.csdn.net/rifengxxc/article/details/77414090 下面讲下关于python模拟登录实验,之前怎么调试也不行,我也是摸索了好久,结合网上一些资料,终于把我们的系统实现了登录操作.首先,我们的系统有重定向跳转,先post请求302,然后进行get请求: 以下代码仅供参考! #_*_coding:utf-8_*_import requests,base64# var=base64.b64encode("123456")

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

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

定向爬虫 - Python模拟新浪微博登录

写在前面 当我们试图从新浪微博抓取数据时,我们会发现网页上提示未登录,无法查看其他用户的信息. 模拟登录是定向爬虫制作中一个必须克服的问题,只有这样才能爬取到更多的内容. 实现微博登录的方法有很多,一般我们在模拟登录时首选WAP版. 因为PC版网页源码中包括很多的js代码,提交的内容也更多,不适合机器模拟登录. 我们实现微博登录的大体思路是这样的: 用抓包工具把正常登录时要提交的字段都记录下来. 模拟提交这些字段. 判断是否登录成功. 原理很简单,让我们一步一步来实现吧. 一.抓包利器Fiddl

使用python模拟用户登录

说明 模拟用户登陆 1.判断用户名是否输入超过3 输入超过三次后给出提示退出 2.输入用户名和密码判断是否输入正确 输入正确用户名或密码 提示登录成功 输入错误用户名或密码 提示用户名或密码错误,请重新输入并返回判断用户名是否输入超过3次 user_info = { "kira":"123", "jack":"456", "lucy":"789", "lilei":&

python 模拟用户登录代码

需求:输入用户名,判断用户是否被锁定,锁定则退出,否则进入密码验证,输入三次错误密码之后此用户被锁定. userlist.txt里,用":"将用户名.密码.状态码分开: [[email protected] ~]# cat userlist.txt 张三:123:0 李四:456:0 admin:123:0 qqq:123:0 代码: 1 #!/usr/bin/env python 2 # -*- coding=utf-8 -*- 3 __author__ = 'gmk' 4 5 im

Python模拟用户登录

#!/usr/bin/python #_*_ coding:utf-8 _*_#Author:moshell#datetime:2018/6/11 9:28 import sys f1=open(r'Account_Password.txt','r')f2=open(r'Lock_Account.txt','r')Info={}Lock=[]for line in f1: k,v=line.strip().split() Info[k]=vfor line in f2: Lock.append(