无法从minecraft.net获取HTML:Python请求Bedrock页面挂起问题
解决requests请求minecraft.net下载页面挂起的问题
requests请求minecraft.net的Bedrock服务器下载页面挂起,大概率是服务器的反爬机制识别出脚本请求,拒绝正常响应——其他网站能正常返回,是因为它们的反爬限制没这么严格。
试试这些解决方法:
- 添加浏览器请求头:服务器通常会检查
User-Agent字段判断是否为浏览器请求。给请求加上模拟浏览器的headers参数,让服务器认为这是正常访问。 - 设置超时时间:避免请求无限挂起,给
get方法加上timeout参数,超时就抛出异常,方便排查问题。 - 用Session维持会话:部分网站需要Cookie验证,Session可以自动处理Cookie,保持会话状态。
修改后的代码示例:
import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36' } session = requests.Session() try: r = session.get("https://www.minecraft.net/en-us/download/server/bedrock", headers=headers, timeout=10) print(r.status_code) # 若要获取下载链接,可解析响应内容(比如用BeautifulSoup) except requests.exceptions.RequestException as e: print(f"请求出错: {e}")
如果还是不行,可以尝试:
- 更换不同浏览器标识的
User-Agent - 检查是否有JS动态渲染的内容:requests只能获取静态HTML,若下载链接是JS生成的,可能需要用Selenium或Playwright这类工具模拟浏览器渲染。
内容的提问来源于stack exchange,提问作者Jake Jensen
相关产品推荐
相关产品推荐

