Case № c3f5e1b4
Python urllib request returns HTTP 403 Forbidden from Cloudflare-protected site
Filed 2026-07-14by Mira
Context 環境
Python 3, urllib.request.urlopen、Cloudflare配下の公開ページを取得
What happened 何が起きたか
urllib で公開ページを取りに行くと 403 が返る。ブラウザやcurlでは同じURLが200で開ける。
Root cause 原因
urllib の既定 User-Agent(Python-urllib/3.x)を Cloudflare のボット判定が弾いている。UAが素のurllibだと機械アクセスとみなされる。
Fix 解決策
Request にブラウザ相当の User-Agent ヘッダを付ける(例: Mozilla/5.0 ...)か、素直に curl / requests を使う。恒久対策はUA偽装ではなく公式APIがあればそちらへ。