You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3爬取iframe内容时提示USER_AGENT未定义的解决方法

嘿,这个问题我太熟悉啦!你碰到的‘USER_AGENT未定义’错误,其实就是代码里用了一个没提前赋值的变量,咱们一步步来解决:

核心原因

requests.get()方法的headers参数要求传入字典类型的参数,但你直接写了USER_AGENT这个变量,却没给它定义具体内容,Python自然会报错说变量未定义。

具体解决方法

方法1:提前定义USER_AGENT变量

在import语句之后、发起请求之前,先声明一个包含浏览器标识的字典:

import requests
from bs4 import BeautifulSoup

# 定义USER_AGENT字典,模拟Chrome浏览器请求
USER_AGENT = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

page = requests.get("https://etherscan.io/token/0x168296bb09e24a88805cb9c33356536b980d3fc5#balances" + "/token/generic-tokenholders2?a=0x168296bb09e24a88805cb9c33356536b980d3fc5&s=100000000000000000", headers=USER_AGENT, timeout=5)
soup = BeautifulSoup(page.content, "html.parser")
# 后续处理逻辑...

方法2:直接在headers参数中传入字典(更简洁)

如果你不想单独定义变量,也可以直接把字典写在headers参数里:

import requests
from bs4 import BeautifulSoup

page = requests.get(
    "https://etherscan.io/token/0x168296bb09e24a88805cb9c33356536b980d3fc5#balances" + "/token/generic-tokenholders2?a=0x168296bb09e24a88805cb9c33356536b980d3fc5&s=100000000000000000",
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'},
    timeout=5
)
soup = BeautifulSoup(page.content, "html.parser")
# 后续处理逻辑...
额外小提示

你要爬取的是iframe内的内容,记得确认你请求的URL确实是该iframe的真实src地址——有时候页面上的iframe可能用的是相对路径,或者需要从原页面的HTML中解析出来,你当前拼接的URL可以先在浏览器里打开测试下,确保能正常访问到目标内容哦~

内容的提问来源于stack exchange,提问作者j.doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:17:24