爬蟲基礎學習-授權認證,cookie認證,異常處理

驗證:
HTTPBasicAuthHandler(用戶基本的身份驗證處理)
HTTPPasswordMgrWithDefaultRealm(經常和authhandler一起出現)

#創建一個密碼管理器
password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
#添加進目標url,用戶名 密碼
password_mgr.add_password(None,url,username,password)
第一個參數為NONE,表示默認的域
如果需要添加不同域的憑證可以將none替換為對應的域名WithDefaultRealm ?(為不同的URL設置相同的域)

#! /usr/bin/evn python3import urllib.request
from urllib.parse import urlparsedef auto_login():url = 'https://ssr3.scrape.center/'# 指定用戶名、密碼username = 'admin'password = 'admin'# 創建一個密碼管理器password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()# 添加url、用戶名、密碼password_mgr.add_password(None, url, username, password)# 創建一個基本密碼認證處理器并把密碼管理器傳遞給它handle = urllib.request.HTTPBasicAuthHandler(password_mgr)# 創建網絡請求的構造器opener = urllib.request.build_opener(handle)response = opener.open(url)print(response.read().decode('utf-8'))auto_login()

Cookie

1.用賬號密碼登錄

2.第一次登錄成功后“set-cookie”

3.下次登錄就不需要在輸入了

處理cookie相關的handler :cookiejar
寫cookiejar:MozillaCookieJar
將cookies保存成Mozilla型瀏覽器的cookies格式

讀cookiejar:LWPCookieJar
保存成 libwww-perl(LWP) 格式cookies文件。

#! /usr/bin/evn python3import urllib.request
import http.cookiejarurl = "https://www.baidu.com"# cookie = http.cookiejar.CookieJar()filename = "cookie1.txt"# cookie = http.cookiejar.LWPCookieJar(filename=filename)
# handle = urllib.request.HTTPCookieProcessor(cookie)
# opener = urllib.request.build_opener(handle)
# response = opener.open(url)
# for item in cookie:
#     print(item)
# cookie.save(ignore_discard=True, ignore_expires=True)cookie = http.cookiejar.LWPCookieJar()
cookie.load(filename=filename, ignore_discard=True, ignore_expires=True)
handle = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handle)
response = opener.open(url)
print(response.read().decode('utf-8'))

項目內容:

利用cookie繞過登錄網站

#!/usr/bin/env python3
import random
import urllib.request
import urllib.parse
import urllib.error# 定義URL
url = 'http://httpbin.org/post'# 定義多組User-Agent
ip_list = ["http://183.161.45.66:17114","http://119.41.198.172:18350","http://27.191.60.244:15982","http://27.215.237.221:20983",
]# 利用 random 函數 每次隨機抽取一個User-Agent
proxy = random.choice(ip_list)
print(proxy)
try:proxy_hander = urllib.request.ProxyHandler({'http': proxy, 'https': proxy})opener = urllib.request.build_opener(proxy_hander)response = opener.open(url)print(response.read().decode('utf-8'))except urllib.error.URLError as e:print("error: ", e)

異常處理:

1、URLerror
urllib的error模塊:
urlerror繼承自OSError
except error.URLError as e:
print(e.reason) ??

2、打印錯誤的原因

HTTPError:
專門用來處理HTTP請求

#! /usr/bin/evn python3import urllib.request
from urllib import request, error
from urllib.error import *
import sockettry:url = 'https://www.baidu.com/'response = urllib.request.urlopen(url, timeout=0.01)# header = {#     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36'# }# req = urllib.request.Request(url=url, headers=header)# response = urllib.request.urlopen(req)# print(response.read().decode('utf-8'))
except error.URLError as e:print(e.reason)if isinstance(e.reason, socket.timeout):print("Timed out")# except error.HTTPError as e:
#     print(e)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94023.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94023.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94023.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開發避坑指南(34):mysql深度分頁查詢優化方案

問題語句 SELECT* FROMt_order_log l WHERE1 1 AND l.create_time > 2024-08-28 AND l.create_time < 2024-09-04 23:59:59 LIMIT 10000,10上述查詢sql&#xff0c;即使create_time字段已建立索引&#xff0c;但偏移量達到幾十萬時候&#xff0c;查詢耗時將近1分鐘&…

Unreal Engine UFloatingPawnMovement

Unreal? Unreal Engine - UFloatingPawnMovement&#x1f3f7; 定義&#x1f9e9; 類繼承關系?? 關鍵特性&#x1f6e0;? 常見配置&#xff08;Details 面板/代碼&#xff09;&#x1f4dd; 使用方法1) 在 Pawn 中添加組件&#xff08;C&#xff09;2) 綁定輸入與驅動移動3…

某網盤不好用?有沒有類似某網盤的存儲軟件?阿里云國際站 OSS:云存儲的全能助手,你 get 了嗎?

在這個數據爆炸的時代&#xff0c;數據存儲和管理成為了眾多企業和個人面臨的一大挑戰。想象一下&#xff0c;你是一位視頻博主&#xff0c;隨著粉絲量的增長&#xff0c;視頻素材越來越多&#xff0c;電腦硬盤根本裝不下&#xff0c;每次找素材都要花費大量時間。又或者你是一…

安全運維過程文檔體系規范

安全運維過程文檔體系規范 1. 文檔體系總覽 本文檔體系嚴格遵循“安全運維生命周期”模型設計&#xff0c;涵蓋業務建立、協同、運維管理、識別防御監測、響應和效果評估六個核心階段。體系旨在通過標準化、規范化的文檔管理&#xff0c;確保所有安全運維活動有章可循、有據可查…

【計算機網絡】 IPV4和IPV6區別

IPv4 和 IPv6 是兩代 互聯網協議&#xff08;Internet Protocol&#xff09;&#xff0c;它們的核心作用都是&#xff1a; &#x1f449; 為網絡設備分配唯一地址&#xff0c;讓它們能在網絡中互相通信。1?? 地址長度IPv4&#xff1a;32 位&#xff08;4 字節&#xff09;&am…

哈希:最長連續序列

題目描述&#xff1a;無序的整型數組&#xff0c;求連續最長序列。 輸入&#xff1a;nums [100,4,200,1,3,2] 輸出&#xff1a;4 &#xff08;因為&#xff1a;最長數字連續序列是 [1, 2, 3, 4]&#xff0c;長度為 4。&#xff09; 說明&#xff1a;連續指的是數字的連續…

python中的生成器

概要python中的生成器是一種特殊的迭代器&#xff0c;如果按照c語言的說法&#xff0c;就是一種特殊的指針&#xff0c;但是python語言的一個語言特性是兼容了函數化編程&#xff0c;類似lambda匿名函數機制。本文重點介紹生成器表達式的使用&#xff0c;是一種很快捷&#xff…

【Coze】Windows 環境下使用 Docker 部署 Coze Studio 的詳細指南

一、前言&#xff1a; Coze Studio 是一站式 AI Agent 開發工具。提供各類最新大模型和工具、多種開發模式和框架&#xff0c;從開發到部署&#xff0c;為你提供最便捷的 AI Agent 開發環境。 提供 AI Agent 開發所需的全部核心技術&#xff1a;Prompt、RAG、Plugin、Workflo…

票務系統小程序源碼

1. 系統概述 github地址 本系統是一個歷經多年迭代和市場檢驗的綜合性智慧票務解決方案。它以小程序和后臺管理系統為核心&#xff0c;深度整合了線上OTA渠道、線下多種支付方式以及各類智能硬件&#xff0c;為旅游景區、展館、活動中心等場景提供穩定、高效、功能完備的一體化…

Python 文件操作與異常處理全解析

目錄 一、文件的基本概念 1. 什么是文件 2. 文件操作的核心內容 3. 文件操作的作用 二、文件的基本操作 1. 文件操作三步走 2. 打開文件&#xff1a;open () 函數 2.1 文件路徑 2.2 常用 mode 模式 3. 寫入文件&#xff1a;write () 函數 4. 關閉文件&#xff1a;cl…

領碼方案:通用物聯網數據采集低代碼集成平臺——萬物智聯時代的黃金鑰匙

摘要&#xff1a; 領碼方案通過“協議抽象層低代碼引擎AI智能中樞”架構&#xff0c;實現物聯網設備數據采集、存儲、分析的零代碼配置化集成。支持200工業協議即插即用&#xff0c;10分鐘完成設備上云&#xff0c;數據流轉效率提升70%&#xff0c;AI模型調用耗時降低90%。該方…

后臺管理系統-10-vue3之用戶管理組件配置子路由和靜態頁面

文章目錄 1 配置子路由 1.1 router/index.js(添加路由) 1.2 views/User.vue(用戶管理) 1.3 驗證路由是否生效 2 User.vue(靜態頁面) 2.1 搜索框和表格的靜態搭建 2.2 用戶表格的數據獲取渲染 2.2.1 user.js(準備數據) 2.2.2 mock.js(攔截請求的URL) 2.2.3 api.js(axios請求的UR…

AMPAK正基科技系列產品有哪些廣泛應用于IOT物聯網

關於正基AMPAK 智慧物聯網 無線射頻模組專家 專業品牌 正基科技是一家擁有超過 20 年無線模組研發、設計、生產、行銷與產品技術整合服務經驗的公司。 有專業的高頻模組硬體設計及軟體整合工程師團隊&#xff0c;具備豐富的客戶應用經驗&#xff0c;能因應客戶與市場導向的產品…

【PyTorch】環境配置

文章目錄1. 配置cuda環境2. 配置conda環境3. 配置pytorch gpu環境1. 配置cuda環境 在命令行輸入以下命令可以查看當前顯卡驅動版本和最高支持的cuda版本 nvidia-smi根據cuda版本去官網下載并安裝cuda 下載鏈接&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive…

vue3實現實現手機/PC端錄音:recorder-core

通過 recorder-core 這個插件實現錄音recorder-core插件使用下方的js文件是安裝后封裝的一個js文件&#xff0c;在需要使用的地方直接引入這個文件&#xff1a;import record from “./recorderCore.js”;// 文件名稱&#xff1a;recorderCore.js// recorder-core插件使用方式…

deepseek 本地部署,如何支持工具調用

這里需要考慮顯卡是否和模型匹配&#xff0c;支不支持推理 先把模版拉取到本地&#xff1a;git clone https://github.com/sgl-project/sglang.git 我的位置是 /data/home/sglang 注意模版位于sglang下的examples/chat_template中 根據對應的模版部署模型&#xff0c;比如 …

Excel中運行VB的函數

“插入” -》 “模塊”Function FormatCodeFlex(inputStr As String, Optional defaultVal As String "0") As StringOn Error GoTo ErrorHandlerDim parts() As StringDim i As Integer 使用 "-" 分割字符串parts Split(inputStr, "-") 確保至…

《零基礎入門AI:深度學習之NLP基礎學習》

一、自然語言處理&#xff08;NLP&#xff09;概述 1. 基本概念 ? 自然語言處理&#xff08;Natural Language Processing, NLP&#xff09;是人工智能與計算語言學交叉的核心領域&#xff0c;致力于實現計算機對人類自然語言的自動理解、分析、生成與交互。其研究目標在于構…

保姆級Debezium抽取SQL Server同步kafka

前言&#xff1a; Debezium SQL Server連接器捕獲SQL Server數據庫模式中發生的行級更改。 官方2.0文檔&#xff1a; Debezium connector for SQL Server :: Debezium Documentation 有關與此連接器兼容的SQL Server版本的信息&#xff0c;請參閱 SQL Server Database: 201…

鴻蒙安卓前端中加載丟幀:ArkWeb分析

序章&#xff1a;卡頓的數字世界 在每秒60幀的視覺交響樂中&#xff0c;每一幀都是精心編排的節拍。當這些節拍開始丟失——就像交響樂中突然靜音的提琴部——我們便遭遇了加載丟幀的數字噩夢。這不是簡單的性能下降&#xff0c;而是一場渲染管線的全面崩潰&#xff0c;是數字…