python 爬蟲網(wǎng)頁登陸的簡單實(shí)現(xiàn)
相信各位在寫 python 爬蟲的時候會在爬取網(wǎng)站時遇到一些登陸的問題,比如說登陸時遇到輸入驗(yàn)證碼比如說登錄時遇到圖片拖拽等驗(yàn)證,如何解決這類問題呢?一般有兩種方案。
使用 cookie 登陸
我們可以通過使用 cookies 登陸,首先獲取瀏覽器的 cookie,然后利用 requests 庫直接登陸 cookie,服務(wù)器就會認(rèn)為你是一個真實(shí)登陸用戶,所以就會返回給你一個已登陸的狀態(tài),這個方法是很好用的,基本上絕大部分的需要驗(yàn)證碼登錄的網(wǎng)站都可以通過 cookie 登錄來解決,
#! -*- encoding:utf-8 -*- import requests import random import requests.adapters # 要訪問的目標(biāo)頁面 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訪問都是用HTTP代理 proxies = { 'http': proxyMeta, 'https': proxyMeta, } # 訪問三次網(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)證碼,此時采用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!
模擬登陸
這里不得不說一句老話,前人種樹,后人乘涼,當(dāng)時我想爬一下知乎鹽選的文章,但是卡在了登陸這塊,沒想到搜索下來發(fā)現(xiàn)了一個模擬登陸的庫,非常好用,不過本著好東西不分享防和諧的原則,就不在這里說了。
具體思路也就是通過 requests 來進(jìn)行模擬登陸,然后返回一下驗(yàn)證碼,之后傳入驗(yàn)證碼即可登陸成功了。
到此這篇關(guān)于python 爬蟲網(wǎng)頁登陸的簡單實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python 爬蟲登陸內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Vue 實(shí)現(xiàn)對quill-editor組件中的工具欄添加title2. 使用Python webdriver圖書館搶座自動預(yù)約的正確方法3. 在線php代碼縮進(jìn)、代碼美化工具:PHP Formatter4. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條5. Python 合并拼接字符串的方法6. Linux刪除系統(tǒng)自帶版本Python過程詳解7. Python3 json模塊之編碼解碼方法講解8. Python字符串到字節(jié)的轉(zhuǎn)換。雙反斜杠問題9. Android 簡單的實(shí)現(xiàn)滑塊拼圖驗(yàn)證碼功能10. ASP基礎(chǔ)知識VBScript基本元素講解

網(wǎng)公網(wǎng)安備