CodeGym /Adesua ahorow /Python SELF TW /繞過網頁爬蟲限制:設定 user-agent、cookies 和避免封鎖的方法

繞過網頁爬蟲限制:設定 user-agent、cookies 和避免封鎖的方法

Python SELF TW
等級 33 , 課堂 0
開放

1. 網頁爬蟲限制的介紹

今天我們要討論一個很有趣的話題——如何繞過網頁爬蟲的限制。每個對爬蟲感興趣的程式設計師,遲早都會遇到網頁設下的限制和封鎖。是時候來了解如何作為正派人士,不被網站的防護系統抓到,並繼續收集數據而不觸怒伺服器。

當你對網站發送請求時,本質上你是在進入他們的私人領域以獲取他們努力保護的數據。但為什麼網站要設置障礙呢?原因可能多種多樣,例如保護著作權、確保伺服器的可靠性和性能、防止未經授權的數據使用。如果你消耗了太多的網站資源或者違反了他們的規則,那麼你可能會...被封鎖。而且除了伺服器管理員,大概沒有人喜歡被封鎖吧。

2. 設定 user-agent

什麼是 user-agent

User-agent 是一個識別字串,會隨每個 HTTP 請求一起從你的瀏覽器發送到伺服器。它告訴伺服器你使用的是什麼瀏覽器和操作系統。而且你知道嗎?這個 user-agent 很容易就可以偽裝,讓伺服器以為你是在用最新的 iPhone,而不是用 Python 腳本在寫程式的空檔偷跑去抓數據。

更改 user-agent 的範例

requests 庫中更改 user-agent 非常簡單。來看個小範例:

Python

import requests

url = "https://example.com"

# 將 user-agent 設為 Chrome 瀏覽器
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"
}

response = requests.get(url, headers=headers)
print(response.content)

偽裝 user-agent 有點像穿著熊貓裝參加派對。外觀看起來不一樣,但其實還是你。伺服器看到一個“瀏覽器”而不是“腳本”時,可能就會讓你進派對了。

3. 使用 cookies

什麼是 cookies?

Cookies 是一些小數據片段,網站會儲存在你的瀏覽器裡。它們可能包含各種資訊,從網站的設定到會話 ID,這些會話 ID 可以讓你登入後保持在線狀態。

在請求中使用 cookies

requests 中使用 cookies 也很簡單。通常你會在第一次向網站發送請求時獲取 cookies,然後在後續請求中使用它們:

Python

# 建立一個 session 來保持 cookies
session = requests.Session()

# 執行第一次請求以獲取 cookies
session.get(url)

# 在後續請求中使用相同的 cookies
response = session.get(url)
print(response.content)

Session 就像是 cookies 的公車,它們會隨著你從一個網站到另一個網站,保留你的設定。

4. 避免封鎖的方法

降低被封鎖的概率的實用技巧

以下是一些小妙招:

  • 請求之間的延遲: 添加隨機延遲,避免讓伺服器懷疑你是機器人。
  • 更換 IP 地址: 使用 VPN 或代理伺服器更換 IP 地址,避免因 IP 被封鎖。
  • 輪換 user-agent: 每次請求更改 user-agent,讓你看起來像不同的瀏覽器。

添加延遲和更改 IP 地址的範例

使用 time 庫添加延遲:

Python

import time
import random

for _ in range(10):
    response = session.get(url)
    # 隨機延遲
    time.sleep(random.uniform(1, 3))

requests 中使用代理來更改 IP 地址:

Python

proxies = {
    "http": "http://10.10.10.10:8000",
    "https": "https://10.10.10.10:8000",
}

response = requests.get(url, proxies=proxies)

5. 其他欺騙方法

為了讓你的腳本看起來不那麼可疑,使用 headerscookies 模擬一個真正的用戶。記住:真實性是你對抗封鎖的秘密武器。

今天的課程到此結束。學會了這些技巧,你將能避免在網站的雷達上“閃亮登場”,並繼續無阻地收集寶貴的數據。記住,就像任何超級英雄一樣,你也有責任——請在道德和法律的框架內使用這些技巧!相信自己,讓你的程式碼優雅得像貓在鍵盤上跳舞一樣!

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION