python2 登錄帶驗證碼的頁面


#!/usr/bin/python
#-*- coding: utf-8 -*-

import os,json;
import urllib,urllib2;
import cookielib;

#獲取cookie
#聲明一個CookieJar對象實例來保存cookie
cookie = cookielib.CookieJar()
#利用urllib2庫的HTTPCookieProcessor對象來創建cookie處理器
handler=urllib2.HTTPCookieProcessor(cookie)
#通過handler來構建opener
opener = urllib2.build_opener(handler)
#此處的open方法同urllib2的urlopen方法,也可以傳入request
response = opener.open('web地址')
#agent標識
user_agent = {'User-Agent':'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}

#登錄
while True:
    #獲取驗證碼
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
    req_url='驗證碼地址'
    req=urllib2.Request(url=req_url,headers=user_agent)
    content=opener.open(req)
    
    
    imgpath="code.jpg"
    picture=content.read()
    with open(imgpath,"wb") as fp:
        fp.write(picture)
    
    #彈出驗證碼圖片
    os.system("%s/%s"%(os.path.abspath('.'),imgpath))

    #輸入驗證碼
    req_url='登錄地址'
    code=raw_input("輸入驗證碼:")
    if code == '':
        print("驗證碼不能為空")
        continue
    print(code)
    #驗證
    req_data_dict={'username':'賬號','password':'密碼','code':code}
    req_data=urllib.urlencode(req_data_dict)
    req=urllib2.Request(url=req_url,data=req_data,headers=user_agent)
    content=opener.open(req)
    login=json.loads(content.read())
    if int(login[u'ok']) == 1:
        print(cookie)
        print('登錄成功')
        break
    else:
        print(login)
        print("驗證碼錯誤")

#參考以下資料

http://python.jobbole.com/81344/

https://www.cnblogs.com/xiaoxi-3-/p/7586072.html

http://blog.csdn.net/liuyuan_jq/article/details/69524279


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM