使用Python requests访问prnt.sc被拦截返回502错误如何解决
问题排查与解决方案
1 优先修复代码错误
- 请求头键名错误:你定义的headers中使用
User_Agent作为键,但标准HTTP请求头的UA字段应为User-Agent(中横线连接,非下划线)。错误的键名会导致服务端无法识别你传入的浏览器标识,相当于请求无合法UA,直接被站点反爬策略拦截返回502。 - 响应体获取拼写错误:代码末尾的
r.con需修正为r.content才能正确获取响应内容。
修改后的代码示例:
import requests from fake_useragent import UserAgent ua = UserAgent() url = 'https://prnt.sc/dv6373' # 补充完整请求头,完全模拟浏览器真实请求 headers = { "User-Agent": ua.firefox, "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.3,en;q=0.2", "Accept-Encoding": "gzip, deflate, br", "Connection": "keep-alive", "Upgrade-Insecure-Requests": "1" } r = requests.get(url, allow_redirects=True, headers=headers) path = "C:/Users/sobol/Desktop/test.html" with open(path, 'wb') as f: f.write(r.content)
2 关于UA被加前缀的疑问
只要你正确传入了User-Agent请求头,requests不会自动在你自定义的UA前添加python requests相关标识。只有未主动传入该头时,requests才会使用默认的python-requests/版本号格式UA,你的问题不属于该情况。
3 其他排查方向
如果修正后仍返回502,可按以下方向排查:
- 补充Cookie字段:prnt.sc会对首次访问用户下发Cookie,你可以复制浏览器正常请求时携带的Cookie到headers中测试。
- 检查IP限制:短时间频繁请求会触发站点频率限制,可切换网络或等待一段时间后重试。
内容的提问来源于stack exchange,提问作者Xkeyscore
相关产品推荐
相关产品推荐

