偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Selenium 反反爬蟲:UA偽裝 + 代理切換實(shí)戰(zhàn)技巧

開發(fā)
在使用 Selenium 自動(dòng)化瀏覽網(wǎng)頁時(shí),經(jīng)常會(huì)遇到“異常訪問”、“驗(yàn)證碼校驗(yàn)”甚至直接拒絕訪問等情況。這是因?yàn)榇蠖鄶?shù)網(wǎng)站都部署了反爬機(jī)制,用來攔截腳本程序。

Selenium 自動(dòng)化被攔截怎么辦?

在使用 Selenium 自動(dòng)化瀏覽網(wǎng)頁時(shí),經(jīng)常會(huì)遇到“異常訪問”、“驗(yàn)證碼校驗(yàn)”甚至直接拒絕訪問等情況。這是因?yàn)榇蠖鄶?shù)網(wǎng)站都部署了反爬機(jī)制,用來攔截腳本程序。

雖然 Selenium 是為了模擬真實(shí)用戶操作,但若使用方式不當(dāng),很容易被識(shí)別。為此,我們要特別注意以下幾點(diǎn):

  • 限制請(qǐng)求頻率:不要頻繁刷新頁面或切換頁面。
  • 動(dòng)態(tài)更換 IP 和 UA:避免單一客戶端指紋被封鎖。

如何設(shè)置代理 IP 和 User-Agent(UA)?

網(wǎng)站通常會(huì)根據(jù)請(qǐng)求的 UA 和 IP 識(shí)別請(qǐng)求者是否為機(jī)器人。我們可以通過以下方式隨機(jī)切換 UA 和代理,來迷惑目標(biāo)網(wǎng)站的反爬檢測。

第一步:安裝隨機(jī) UA 庫

pip3 install fake-useragent

完整代碼示例:實(shí)現(xiàn) UA + IP 動(dòng)態(tài)偽裝

代碼如下:

#!/usr/bin/python
# coding: UTF-8
# -*- coding:utf-8 -*-
# IP代理和UA切換

from time import sleep
from fake_useragent import UserAgent
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

global driver

# 啟動(dòng)Chrome
def get_driver():
    user_agent = UserAgent().random
    # 代理地址
    proxies = "http://xxx.xxx.xxx.xxx:80"

    # 輸出當(dāng)前配置
    print("headers請(qǐng)求頭", '--user-agent={}'.format(str(user_agent)))
    print("proxies代理設(shè)置", '--proxy-server={}'.format(str(proxies)))

    chrome_options = Options()
    
    # 設(shè)置不加載圖片(可選)
    # prefs = {"profile.managed_default_content_settings.images": 2}
    # chrome_options.add_experimental_option("prefs", prefs)

    # 設(shè)置代理(解開注釋啟用)
    # chrome_options.add_argument('--proxy-server={}'.format(str(proxies)))
    
    # 替換User-Agent
    chrome_options.add_argument('--user-agent={}'.format(str(user_agent)))  # 配置為自己設(shè)置的UA

    chrome_driver_path = r'C:\Users\ws\Desktop\chrome-win64\chromedriver.exe'
    chrome_browser_path = r'C:\Users\ws\Desktop\chrome-win64\chrome.exe'
    chrome_options.binary_location = chrome_browser_path
    service = Service(chrome_driver_path)

    return webdriver.Chrome(service=service, options=chrome_options)


if __name__ == '__main__':
    try:
        driver = get_driver()
        driver.get('http://httpbin.org/ip')
        
        # 顯性等待頁面加載
        WebDriverWait(driver, 10).until(
            lambda _: driver.find_element(By.XPATH, '/html/body/pre')
        )
        
        print("頁面代理設(shè)置", driver.page_source)
        sleep(1000)
    except Exception as e:
        driver.quit()
        print('open_url:', e)

獲取免費(fèi)代理地址:推薦工具 ProxyUtil

例如使用方法如下:

# 調(diào)用 ProxyUtil 自動(dòng)獲取代理,前提是先執(zhí)行工具的main方法
proxy_util = ProxyUtil()
proxies = proxy_util.load_proxy()

當(dāng)然,也可以直接手動(dòng)填寫代理地址,按示例格式即可。

配置驗(yàn)證方式

運(yùn)行程序后,會(huì)打開一個(gè)頁面 http://httpbin.org/ip,此頁面會(huì)顯示你當(dāng)前的外部 IP 地址,用于驗(yàn)證代理是否生效。

你也可以按 F12 打開開發(fā)者工具,查看 User-Agent 請(qǐng)求頭信息,進(jìn)一步確認(rèn)偽裝是否成功。

結(jié)語

通過本文你已經(jīng)掌握了:

  • 使用 fake_useragent 隨機(jī) UA
  • 配置 Selenium 使用代理 IP
  • 如何驗(yàn)證偽裝是否生效

這些技巧在應(yīng)對(duì)網(wǎng)站反爬機(jī)制中非常關(guān)鍵。

責(zé)任編輯:趙寧寧 來源: Ssoul肥魚
相關(guān)推薦

2018-07-02 14:12:26

Python爬蟲反爬技術(shù)

2010-08-13 14:44:26

思科路由器IOS軟件

2025-05-14 08:20:00

Linux權(quán)限管理sudo

2018-10-30 12:15:26

CDN網(wǎng)絡(luò)技巧

2009-08-26 08:42:09

思科認(rèn)證考試資料CCNA實(shí)戰(zhàn)技巧

2025-06-11 09:28:22

2024-06-27 08:41:21

2022-05-10 09:33:50

Pandas技巧代碼

2024-01-10 16:46:13

Kubernetes容器

2010-04-15 16:03:19

Hyper-V災(zāi)難恢復(fù)

2021-08-17 11:20:25

Vue前端技巧

2024-12-03 11:29:31

Javathis變量

2024-11-11 10:00:00

2024-05-17 08:38:22

2024-08-30 14:21:04

2013-09-29 10:37:32

2009-12-29 16:37:35

Ubuntu 9.10

2025-02-13 08:06:54

2024-07-03 08:49:32

2017-05-22 14:28:02

CreamVim用戶體驗(yàn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)