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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

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

技术分享

 

以上是关于python模拟艺龙网登录带验证码输入的主要内容,如果未能解决你的问题,请参考以下文章

Python大佬手把手带你用爬虫破解——滑动验证码识别

php 模拟 登录

Python爬虫--人人网模拟登录cookie

在Python中用Request库模拟登录:博客园(简单加密,无验证码)

python验证码识别

selenium登录网银密码控件