python 爬蟲網(wǎng)頁登陸的簡單實(shí)現(xiàn)
相信各位在寫 python 爬蟲的時(shí)候會(huì)在爬取網(wǎng)站時(shí)遇到一些登陸的問題,比如說登陸時(shí)遇到輸入驗(yàn)證碼比如說登錄時(shí)遇到圖片拖拽等驗(yàn)證,如何解決這類問題呢?一般有兩種方案。
使用 cookie 登陸
我們可以通過使用 cookies 登陸,首先獲取瀏覽器的 cookie,然后利用 requests 庫直接登陸 cookie,服務(wù)器就會(huì)認(rèn)為你是一個(gè)真實(shí)登陸用戶,所以就會(huì)返回給你一個(gè)已登陸的狀態(tài),這個(gè)方法是很好用的,基本上絕大部分的需要驗(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)證碼,此時(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!
模擬登陸
這里不得不說一句老話,前人種樹,后人乘涼,當(dāng)時(shí)我想爬一下知乎鹽選的文章,但是卡在了登陸這塊,沒想到搜索下來發(fā)現(xiàn)了一個(gè)模擬登陸的庫,非常好用,不過本著好東西不分享防和諧的原則,就不在這里說了。
具體思路也就是通過 requests 來進(jìn)行模擬登陸,然后返回一下驗(yàn)證碼,之后傳入驗(yàn)證碼即可登陸成功了。
到此這篇關(guān)于python 爬蟲網(wǎng)頁登陸的簡單實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python 爬蟲登陸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python讀取圖片顏色值并生成excel像素畫的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于python讀取圖片顏色值并生成excel像素畫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Python利用memory_profiler查看內(nèi)存占用情況
memory_profiler是第三方模塊,用于監(jiān)視進(jìn)程的內(nèi)存消耗以及python程序內(nèi)存消耗的逐行分析。本文將利用memory_profiler查看代碼運(yùn)行占用內(nèi)存情況,感興趣的可以了解一下2022-06-06
el-table 多表格彈窗嵌套數(shù)據(jù)顯示異常錯(cuò)亂問題解決方案
使用vue+element開發(fā)報(bào)表功能時(shí),需要列表上某列的超鏈接按鈕彈窗展示,在彈窗的el-table列表某列中再次使用超鏈接按鈕點(diǎn)開彈窗,以此類推多表格彈窗嵌套,本文以彈窗兩次為例,需要的朋友可以參考下2023-11-11
python自動(dòng)化工具之pywinauto實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了python自動(dòng)化工具之pywinauto實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08

