自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā)
在使用 Selenium 自動化瀏覽網頁時,經常會遇到“異常訪問”、“驗證碼校驗”甚至直接拒絕訪問等情況。這是因為大多數網站都部署了反爬機制,用來攔截腳本程序。

Selenium 自動化被攔截怎么辦?

在使用 Selenium 自動化瀏覽網頁時,經常會遇到“異常訪問”、“驗證碼校驗”甚至直接拒絕訪問等情況。這是因為大多數網站都部署了反爬機制,用來攔截腳本程序。

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

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

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

網站通常會根據請求的 UA 和 IP 識別請求者是否為機器人。我們可以通過以下方式隨機切換 UA 和代理,來迷惑目標網站的反爬檢測。

第一步:安裝隨機 UA 庫

pip3 install fake-useragent

完整代碼示例:實現(xiàn) UA + IP 動態(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

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

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

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

    # 設置代理(解開注釋啟用)
    # chrome_options.add_argument('--proxy-server={}'.format(str(proxies)))
    
    # 替換User-Agent
    chrome_options.add_argument('--user-agent={}'.format(str(user_agent)))  # 配置為自己設置的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("頁面代理設置", driver.page_source)
        sleep(1000)
    except Exception as e:
        driver.quit()
        print('open_url:', e)

獲取免費代理地址:推薦工具 ProxyUtil

例如使用方法如下:

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

當然,也可以直接手動填寫代理地址,按示例格式即可。

配置驗證方式

運行程序后,會打開一個頁面 http://httpbin.org/ip,此頁面會顯示你當前的外部 IP 地址,用于驗證代理是否生效。

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

結語

通過本文你已經掌握了:

  • 使用 fake_useragent 隨機 UA
  • 配置 Selenium 使用代理 IP
  • 如何驗證偽裝是否生效

這些技巧在應對網站反爬機制中非常關鍵。

責任編輯:趙寧寧 來源: Ssoul肥魚
相關推薦

2018-07-02 14:12:26

Python爬蟲反爬技術

2010-08-13 14:44:26

思科路由器IOS軟件

2018-10-30 12:15:26

CDN網絡技巧

2009-08-26 08:42:09

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

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災難恢復

2021-08-17 11:20:25

Vue前端技巧

2024-12-03 11:29:31

Javathis變量

2009-12-29 16:37:35

Ubuntu 9.10

2013-09-29 10:37:32

2024-11-11 10:00:00

2024-08-30 14:21:04

2024-05-17 08:38:22

2025-02-13 08:06:54

2024-07-03 08:49:32

2009-12-24 16:15:17

2017-05-22 14:28:02

CreamVim用戶體驗

2021-07-14 23:57:26

Vue高級技巧
點贊
收藏

51CTO技術棧公眾號