python 爬蟲(chóng)網(wǎng)頁(yè)登陸的簡(jiǎn)單實(shí)現(xiàn)
相信各位在寫(xiě) python 爬蟲(chóng)的時(shí)候會(huì)在爬取網(wǎng)站時(shí)遇到一些登陸的問(wèn)題,比如說(shuō)登陸時(shí)遇到輸入驗(yàn)證碼比如說(shuō)登錄時(shí)遇到圖片拖拽等驗(yàn)證,如何解決這類(lèi)問(wèn)題呢?一般有兩種方案。
使用 cookie 登陸
我們可以通過(guò)使用 cookies 登陸,首先獲取瀏覽器的 cookie,然后利用 requests 庫(kù)直接登陸 cookie,服務(wù)器就會(huì)認(rèn)為你是一個(gè)真實(shí)登陸用戶,所以就會(huì)返回給你一個(gè)已登陸的狀態(tài),這個(gè)方法是很好用的,基本上絕大部分的需要驗(yàn)證碼登錄的網(wǎng)站都可以通過(guò) cookie 登錄來(lái)解決,
#! -*- encoding:utf-8 -*- import requests import random import requests.adapters # 要訪問(wèn)的目標(biāo)頁(yè)面 targetUrlList = [ "https://httpbin.org/ip", "https://httpbin.org/headers", "https://httpbin.org/user-agent", ] # 代理服務(wù)器 proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理隧道驗(yàn)證信息 proxyUser = "username" proxyPass = "password" proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { "host": proxyHost, "port": proxyPort, "user": proxyUser, "pass": proxyPass, } # 設(shè)置 http和https訪問(wèn)都是用HTTP代理 proxies = { "http": proxyMeta, "https": proxyMeta, } # 訪問(wèn)三次網(wǎng)站,使用相同的Session(keep-alive),均能夠保持相同的外網(wǎng)IP s = requests.session() # 設(shè)置cookie cookie_dict = {"JSESSION":"123456789"} cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True) s.cookies = cookies for i in range(3): for url in targetUrlList: r = s.get(url, proxies=proxies) print r.text 若存在驗(yàn)證碼,此時(shí)采用resp**e = requests_session.post(url=url_login, data=data)是不行的,做法應(yīng)該如下: resp**e_captcha = requests_session.get(url=url_login, cookies=cookies) resp**e1 = requests.get(url_login) # 未登陸 resp**e2 = requests_session.get(url_login) # 已登陸,因?yàn)橹澳玫搅薘esp**e Cookie! resp**e3 = requests_session.get(url_results) # 已登陸,因?yàn)橹澳玫搅薘esp**e Cookie!
模擬登陸
這里不得不說(shuō)一句老話,前人種樹(shù),后人乘涼,當(dāng)時(shí)我想爬一下知乎鹽選的文章,但是卡在了登陸這塊,沒(méi)想到搜索下來(lái)發(fā)現(xiàn)了一個(gè)模擬登陸的庫(kù),非常好用,不過(guò)本著好東西不分享防和諧的原則,就不在這里說(shuō)了。
具體思路也就是通過(guò) requests 來(lái)進(jìn)行模擬登陸,然后返回一下驗(yàn)證碼,之后傳入驗(yàn)證碼即可登陸成功了。
到此這篇關(guān)于python 爬蟲(chóng)網(wǎng)頁(yè)登陸的簡(jiǎn)單實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python 爬蟲(chóng)登陸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中五種實(shí)現(xiàn)字符串反轉(zhuǎn)的方法
這篇文章主要介紹了Python中五種實(shí)現(xiàn)字符串反轉(zhuǎn)的方法,編寫(xiě)一個(gè)函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過(guò)來(lái)。下面文章關(guān)于其詳細(xì)介紹,需要的小伙伴可以參考一下2022-05-05Python實(shí)現(xiàn)將圖片轉(zhuǎn)換為ASCII字符畫(huà)
這篇文章主要介紹了Python實(shí)現(xiàn)將圖片轉(zhuǎn)換為ASCII字符畫(huà),要將圖片轉(zhuǎn)換為字符圖其實(shí)很簡(jiǎn)單,我們首先將圖片轉(zhuǎn)換為灰度圖像,這樣圖片的每個(gè)像素點(diǎn)的顏色值都是0到255,然后我們選用一些在文字矩形框內(nèi)占用面積從大到小的ASCII碼字符2022-08-08Python實(shí)現(xiàn)FTP文件定時(shí)自動(dòng)下載的步驟
這篇文章主要介紹了Python實(shí)現(xiàn)FTP文件定時(shí)自動(dòng)下載的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12python文件操作seek()偏移量,讀取指正到指定位置操作
這篇文章主要介紹了python文件操作seek()偏移量,讀取指正到指定位置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Python使用urllib模塊對(duì)URL網(wǎng)址中的中文編碼與解碼實(shí)例詳解
這篇文章主要介紹了Python使用urllib模塊對(duì)URL網(wǎng)址中的中文編碼與解碼(Python使用urllib模塊對(duì)URL編碼與解碼)實(shí)例詳解,需要的朋友可以參考下2020-02-02使用Python的Treq on Twisted來(lái)進(jìn)行HTTP壓力測(cè)試
這篇文章主要介紹了使用Python的Treq on Twisted來(lái)進(jìn)行HTTP壓力測(cè)試,基于Python中的Twisted框架,需要的朋友可以參考下2015-04-04python實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03