Python Requests请求目标URL无响应,无法获取状态码求助
解决Requests请求https://www.americanas.com.br/无响应的问题
以下是几种针对性的排查和解决方法:
强制设置超时参数
Requests默认没有超时限制,程序会一直等待服务器响应,这是卡住的常见原因。直接给请求添加超时时间(单位:秒),避免无限挂起:import requests try: response = requests.get('https://www.americanas.com.br/', timeout=10) print(response.status_code) except requests.exceptions.Timeout: print("请求超时") except Exception as e: print(f"发生错误: {e}")添加浏览器UA伪装
很多电商网站会拦截无标识的爬虫请求,导致连接挂起。给请求头添加标准的浏览器User-Agent: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' } try: response = requests.get('https://www.americanas.com.br/', headers=headers, timeout=10) print(response.status_code) except Exception as e: print(f"错误: {e}")手动解析IP绕过DNS问题
如果是本地DNS解析异常导致的连接卡住,可以先手动解析目标域名的IP,再通过IP请求并添加Host头:import socket import requests try: # 获取域名对应的IP ip = socket.gethostbyname('www.americanas.com.br') # 用IP构造请求URL,同时添加Host头指定原域名 response = requests.get(f'https://{ip}', headers={'Host': 'www.americanas.com.br'}, timeout=10, verify=False) print(response.status_code) except socket.gaierror: print("DNS解析失败") except Exception as e: print(f"错误: {e}")注:
verify=False是跳过SSL证书验证(用IP请求时证书域名不匹配),生产环境建议配置正确的证书。禁用自动重定向
若目标网站存在异常重定向链,也会导致请求卡住。可以禁用自动重定向排查:import requests try: response = requests.get('https://www.americanas.com.br/', allow_redirects=False, timeout=10) print(response.status_code) except Exception as e: print(f"错误: {e}")检查网络环境
部分地区可能无法直接访问该巴西电商网站,可尝试切换网络(比如手机热点)或使用代理服务器访问。
内容的提问来源于stack exchange,提问作者estudante19
相关产品推荐
相关产品推荐

