<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        python實現(xiàn)帶驗證碼網(wǎng)站的自動登陸實現(xiàn)代碼

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 14:40:42
        文檔

        python實現(xiàn)帶驗證碼網(wǎng)站的自動登陸實現(xiàn)代碼

        python實現(xiàn)帶驗證碼網(wǎng)站的自動登陸實現(xiàn)代碼:早聽說用python做網(wǎng)絡爬蟲非常方便,正好這幾天單位也有這樣的需求,需要登陸XX網(wǎng)站下載部分文檔,于是自己親身試驗了一番,效果還不錯。 本例所登錄的某網(wǎng)站需要提供用戶名,密碼和驗證碼,在此使用了python的urllib2直接登錄網(wǎng)站并處理網(wǎng)站的Cookie。
        推薦度:
        導讀python實現(xiàn)帶驗證碼網(wǎng)站的自動登陸實現(xiàn)代碼:早聽說用python做網(wǎng)絡爬蟲非常方便,正好這幾天單位也有這樣的需求,需要登陸XX網(wǎng)站下載部分文檔,于是自己親身試驗了一番,效果還不錯。 本例所登錄的某網(wǎng)站需要提供用戶名,密碼和驗證碼,在此使用了python的urllib2直接登錄網(wǎng)站并處理網(wǎng)站的Cookie。

        早聽說用python做網(wǎng)絡爬蟲非常方便,正好這幾天單位也有這樣的需求,需要登陸XX網(wǎng)站下載部分文檔,于是自己親身試驗了一番,效果還不錯。

        本例所登錄的某網(wǎng)站需要提供用戶名,密碼和驗證碼,在此使用了python的urllib2直接登錄網(wǎng)站并處理網(wǎng)站的Cookie。

        Cookie的工作原理:
        Cookie由服務端生成,然后發(fā)送給瀏覽器,瀏覽器會將Cookie保存在某個目錄下的文本文件中。在下次請求同一網(wǎng)站時,會發(fā)送該Cookie給服務器,這樣服務器就知道該用戶是否合法以及是否需要重新登錄。

        Python提供了基本的cookielib庫,在首次訪問某頁面時,cookie便會自動保存下來,之后訪問其它頁面便都會帶有正常登錄的Cookie了。

        原理:

        (1)激活cookie功能
        (2)反“反盜鏈”,偽裝成瀏覽器訪問
        (3)訪問驗證碼鏈接,并將驗證碼圖片下載到本地
        (4)驗證碼的識別方案網(wǎng)上較多,python也有自己的圖像處理庫,此例調(diào)用了火車頭采集器的OCR識別接口。
        (5)表單的處理,可用fiddler等抓包工具獲取需要提交的參數(shù)
        (6)生成需要提交的數(shù)據(jù),生成http請求并發(fā)送
        (7)根據(jù)返回的js頁面判斷是否登陸成功
        (8)登陸成功后下載其它頁面

        此例中使用多個賬號輪詢登陸,每個賬號下載3個頁面。

        下載網(wǎng)址因為某些問題,就不透露了。

        以下是部分代碼:

        #!usr/bin/env python
        #-*- coding: utf-8 -*-
        
        import os
        import urllib2
        import urllib
        import cookielib
        import xml.etree.ElementTree as ET
        
        
        #-----------------------------------------------------------------------------
        # Login in www.***.com.cn
        def ChinaBiddingLogin(url, username, password):
         # Enable cookie support for urllib2
         cookiejar=cookielib.CookieJar()
         urlopener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
         urllib2.install_opener(urlopener)
         
         urlopener.addheaders.append(('Referer', 'http://www.chinabidding.com.cn/zbw/login/login.jsp'))
         urlopener.addheaders.append(('Accept-Language', 'zh-CN'))
         urlopener.addheaders.append(('Host', 'www.chinabidding.com.cn'))
         urlopener.addheaders.append(('User-Agent', 'Mozilla/5.0 (compatible; MISE 9.0; Windows NT 6.1); Trident/5.0'))
         urlopener.addheaders.append(('Connection', 'Keep-Alive'))
        
        
         print 'XXX Login......'
        
        
         imgurl=r'http://www.*****.com.cn/zbw/login/image.jsp'
         DownloadFile(imgurl, urlopener)
         authcode=raw_input('Please enter the authcode:')
         #authcode=VerifyingCodeRecognization(r"http://192.168.0.106/images/code.jpg")
        
        
         # Send login/password to the site and get the session cookie
         values={'login_id':username, 'opl':'op_login', 'login_passwd':password, 'login_check':authcode}
         urlcontent=urlopener.open(urllib2.Request(url, urllib.urlencode(values)))
         page=urlcontent.read(500000)
        
        
         # Make sure we are logged in, check the returned page content
         if page.find('login.jsp')!=-1:
         print 'Login failed with username=%s, password=%s and authcode=%s' 
         % (username, password, authcode)
         return False
         else:
         print 'Login succeeded!'
         return True
        
        
        #-----------------------------------------------------------------------------
        # Download from fileUrl then save to fileToSave
        # Note: the fileUrl must be a valid file
        def DownloadFile(fileUrl, urlopener):
         isDownOk=False
        
        
         try:
         if fileUrl:
         outfile=open(r'/var/www/images/code.jpg', 'w')
         outfile.write(urlopener.open(urllib2.Request(fileUrl)).read())
         outfile.close()
        
        
         isDownOK=True
         else:
         print 'ERROR: fileUrl is NULL!'
         except:
         isDownOK=False
        
        
         return isDownOK
        
        
        #------------------------------------------------------------------------------
        # Verifying code recoginization
        def VerifyingCodeRecognization(imgurl):
         url=r'http://192.168.0.119:800/api?'
         user='admin'
         pwd='admin'
         model='ocr'
         ocrfile='cbi'
        
        
         values={'user':user, 'pwd':pwd, 'model':model, 'ocrfile':ocrfile, 'imgurl':imgurl}
         data=urllib.urlencode(values)
        
        
         try:
         url+=data
         urlcontent=urllib2.urlopen(url)
         except IOError:
         print '***ERROR: invalid URL (%s)' % url
        
        
         page=urlcontent.read(500000)
        
        
         # Parse the xml data and get the verifying code
         root=ET.fromstring(page)
         node_find=root.find('AddField')
         authcode=node_find.attrib['data']
        
        
         return authcode
        
        
        #------------------------------------------------------------------------------
        # Read users from configure file
        def ReadUsersFromFile(filename):
         users={}
         for eachLine in open(filename, 'r'):
         info=[w for w in eachLine.strip().split()]
         if len(info)==2:
         users[info[0]]=info[1]
        
        
         return users
        
        
        #------------------------------------------------------------------------------
        def main():
         login_page=r'http://www.***.com.cnlogin/login.jsp'
         download_page=r'http://www.***.com.cn***/***?record_id='
        
        
         start_id=8593330
         end_id=8595000
        
        
         now_id=start_id
         Users=ReadUsersFromFile('users.conf')
         while True:
         for key in Users:
         if ChinaBiddingLogin(login_page, key, Users[key]):
         for i in range(3):
         pageUrl=download_page+'%d' % now_id
         urlcontent=urllib2.urlopen(pageUrl)
        
        
         filepath='./download/%s.html' % now_id
         f=open(filepath, 'w')
         f.write(urlcontent.read(500000))
         f.close()
        
        
         now_id+=1
         else:
         continue
        #------------------------------------------------------------------------------
        
        
        if __name__=='__main__':
         main()

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        python實現(xiàn)帶驗證碼網(wǎng)站的自動登陸實現(xiàn)代碼

        python實現(xiàn)帶驗證碼網(wǎng)站的自動登陸實現(xiàn)代碼:早聽說用python做網(wǎng)絡爬蟲非常方便,正好這幾天單位也有這樣的需求,需要登陸XX網(wǎng)站下載部分文檔,于是自己親身試驗了一番,效果還不錯。 本例所登錄的某網(wǎng)站需要提供用戶名,密碼和驗證碼,在此使用了python的urllib2直接登錄網(wǎng)站并處理網(wǎng)站的Cookie。
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 99久久99这里只有免费费精品| 国产精品免费AV片在线观看| 成人爱做日本视频免费| 精品国产日韩久久亚洲| 女人张腿给男人桶视频免费版| 亚洲色欲色欲www在线播放| 四虎影院免费在线播放| 色九月亚洲综合网| 亚洲国产综合人成综合网站| 亚洲天堂免费在线视频| 亚洲AV无码一区二区乱孑伦AS| 69av免费观看| 久久综合久久综合亚洲| 亚洲 小说区 图片区 都市| 在线人成免费视频69国产| 亚洲视频在线观看免费| 成年女人色毛片免费看| 国产亚洲精品成人久久网站| 夜夜春亚洲嫩草影院| 69视频免费在线观看| 亚洲日本乱码卡2卡3卡新区| 免费国产成人高清视频网站| 中文字幕乱码系列免费| 亚洲色图视频在线观看| 在线成人a毛片免费播放| 一个人看的www免费高清| 亚洲精品在线网站| 国产一区二区三区在线观看免费| 国产无遮挡色视频免费观看性色 | 高潮毛片无遮挡高清免费| 亚洲人精品午夜射精日韩 | 亚洲人成网国产最新在线| 亚洲国产成人久久综合碰| 最近中文字幕免费2019| 亚洲国产日韩a在线播放| 亚洲国产无套无码av电影| 18禁无遮挡无码网站免费| 免费网站观看WWW在线观看| 久久久久se色偷偷亚洲精品av| 亚洲片国产一区一级在线观看| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 |