|
发表于 2025-4-3 19:17:17
|
显示全部楼层
问题分析:
你的代码可能存在以下问题导致未执行保存操作:
- 请求未成功:若未进入`try`块中的`print('网页下载成功')`,说明请求失败,此时`htmlfile`仍为None
- URL格式错误:缺少协议头(如写成`www.qq.com`而非`https://www.qq.com`)
- SSL验证失败:部分网站需要关闭证书验证
- 未处理HTTP错误状态码:如403/404等状态码不会触发请求异常
改进方案:
- import requests
- url = '[url=https://www.qq.com']https://www.qq.com'[/url] # 确保包含https://
- try:
- # 添加超时和SSL验证参数
- htmlfile = requests.get(url, timeout=5, verify=True)
- # 主动检查HTTP状态码
- htmlfile.raise_for_status()
- print('网页下载成功')
- except Exception as err:
- print(f'请求失败:{err}')
- htmlfile = None # 显式重置为None
- if htmlfile:
- try:
- with open('out23_11.txt', 'wb') as f:
- for part in htmlfile.iter_content(10240):
- f.write(part)
- print('存储成功')
- except Exception as e:
- print(f'存储失败:{e}')
复制代码
关键改进点:
- 添加timeout=5防止长时间无响应
- 使用raise_for_status()主动抛出HTTP错误
- 使用with open确保文件正确关闭
- 增加存储部分的异常处理
- 显式将失败的htmlfile设为None
验证步骤:
1. 检查控制台输出是否显示"网页下载成功"
2. 若出现错误信息,根据提示排查网络连接或URL有效性
3. 尝试用浏览器直接访问你写的URL进行验证
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|