亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python爬蟲實現(xiàn)驗證碼登錄代碼實例

 更新時間:2019年05月10日 11:09:40   作者:小迷妹大米姐  
這篇文章主要介紹了Python爬蟲實現(xiàn)驗證碼登錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

很多網站為了避免被惡意訪問,需要設置驗證碼登錄,避免非人類的訪問,Python爬蟲實現(xiàn)驗證碼登錄的原理則是先到登錄頁面將生成的驗證碼保存下來,然后人為輸入后,包裝后再POST給服務器,實現(xiàn)驗證,這里還涉及到了Cookie,其實Cookie保存在本地主機上,避免用戶重復輸入用戶名和密碼,在連接服務器的時候將訪問連接和Cookie組裝起來POST給服務器。

這里涉及到了兩次向服務器POST,一次是Cookie,這里還自行設計想要Cookie的內容,由于是要登錄,Cookie中存放的則是用戶名和密碼。第二次POST則是向服務器提交驗證。

這里用到Python3,主要用到的包是re  urllib.request   http.cookiejar

上代碼,借鑒了別人的代碼~~~

import re
import urllib.request
import http.cookiejar
#from http.comkie import CookieJar 上面那句和這句等同
 
loginurl='https://www.douban.com/accounts/login'
cookie = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor)#在已存的Cookie下建立連接
 
params={}
params['form_email']='用戶名'
params['form_password']='密碼'#這里寫上已有的用戶名和密碼
params['source']='http://www.douban.com/accounts/login'
 
#從首頁提交登陸
response = opener.open(loginurl,urllib.parse.urlencode(params).encode('utf-8'))#urllib.parse.urlencode(params).encode('utf-8')這個是向服務
#器POST的內容,可以打印一下response.geturl()請求的連接看一下
#print(response.geturl()[0:33])
#驗證成功跳轉至登陸頁
if response.geturl()[0:33]=='https://accounts.douban.com/login':
    html = response.read().decode('utf-8')
    #print(html),可以先打印一下文件內容,為了看到網頁元素更方便的寫正則,可以復制下來,在需要獲取的地方用(.+?)表示,然后用group()元組來取得,
    #驗證圖片地址
    imgurl=re.search('<img id="captcha_image" src="(.+?)" alt="captcha" class="captcha_image"/>',html)
    if imgurl:
       url=imgurl.group(1)
       #print(url)
       #將驗證碼以v.jpg保存在本地,在輸入驗證碼的時候可以手工輸入
       res=urllib.request.urlretrieve(url,'v.jpg')
       captcha = re.search('<input type="hidden" name="captcha-id" value="(.+?)"/>',html)
       #print(captcha.group(1))
       if captcha:
           vcode=input('請輸入圖片上的驗證碼:')
           params["captcha-solution"] = vcode
           params["captcha-id"] = captcha.group(1)#這個是動態(tài)生成的,需要從網頁中獲得
           params["user_login"] = "登錄"
           #提交驗證碼驗證
           response = opener.open(loginurl,urllib.parse.urlencode(params).encode('utf-8'))
           if response.geturl()=="https://www.douban.com/":
              print("login sucess")

以上所述是小編給大家介紹的Python爬蟲實現(xiàn)驗證碼登錄詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • Python基于鏈接表實現(xiàn)無向圖最短路徑搜索

    Python基于鏈接表實現(xiàn)無向圖最短路徑搜索

    鏈接表的存儲相比較鄰接炬陣,使用起來更方便,對于空間的使用是剛好夠用原則,不會產生太多空間浪費。所以本文將以鏈接表方式實現(xiàn)無向圖最短路徑搜索,需要的可以參考一下
    2022-04-04
  • Python HTMLTestRunner可視化報告實現(xiàn)過程解析

    Python HTMLTestRunner可視化報告實現(xiàn)過程解析

    這篇文章主要介紹了Python HTMLTestRunner可視化報告實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 用Python復現(xiàn)二戰(zhàn)德軍enigma密碼機

    用Python復現(xiàn)二戰(zhàn)德軍enigma密碼機

    大家好,本篇文章主要講的是用Python復現(xiàn)二戰(zhàn)德軍enigma密碼機,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 如何用 Python 處理不平衡數據集

    如何用 Python 處理不平衡數據集

    這篇文章主要介紹了如何用 Python 處理不平衡數據集,幫助大家更好的利用python進行數據分析,感興趣的朋友可以了解下
    2021-01-01
  • 基于Python的自媒體小助手---登錄頁面的實現(xiàn)代碼

    基于Python的自媒體小助手---登錄頁面的實現(xiàn)代碼

    這篇文章主要介紹了基于Python的自媒體小助手---登錄頁面的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • python下載文件的兩種方式

    python下載文件的兩種方式

    這篇文章主要介紹了python下載文件的兩種方式:接口方式和Nginx這兩種方式,并通過代碼示例講解的非常詳細,對大家學習python下載文件有一定的幫助,需要的朋友可以參考下
    2024-08-08
  • python爬取拉勾網職位數據的方法

    python爬取拉勾網職位數據的方法

    這篇文章主要介紹了python爬取拉勾網職位數據的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python爬取股票最新數據并用excel繪制樹狀圖的示例

    python爬取股票最新數據并用excel繪制樹狀圖的示例

    這篇文章主要介紹了python爬取股票最新數據并用excel繪制樹狀圖的示例,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • 在pycharm中關掉ipython console/PyDev操作

    在pycharm中關掉ipython console/PyDev操作

    這篇文章主要介紹了在pycharm中關掉ipython console/PyDev操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Django模板標簽中url使用詳解(url跳轉到指定頁面)

    Django模板標簽中url使用詳解(url跳轉到指定頁面)

    這篇文章主要介紹了Django模板標簽中url使用詳解(url跳轉到指定頁面),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03

最新評論