无法生成请求对象,调用r = request.get访问zomato超时无响应的原因
为什么访问Zomato网站会超时,其他网站却正常?
这种情况我碰到过好几次,大概率是Zomato的反爬机制或者针对性限制导致的,具体原因可以从这几个方向排查:
反爬系统直接拦截了你的请求
Zomato这类流量大的平台,反爬做得很严。你直接用requests.get()不带任何额外请求头的话,服务器一眼就能看出这不是正常浏览器发起的请求,不会给你返回内容,甚至会故意挂着你的连接直到超时——毕竟人家不想让爬虫随便薅数据。你的IP被临时限制了
要是你之前频繁访问过Zomato,哪怕是手动测试,服务器可能已经把你的IP标记成可疑对象了,暂时限制了访问权限。这种情况下,其他网站不受影响,但Zomato就是不给你响应。地区访问限制
Zomato在部分地区可能没有提供服务,或者对特定地区的IP做了访问限制。你可以先试试用普通浏览器打开Zomato官网,如果浏览器也打不开,那大概率是地区或者网络层面的限制。请求头缺失关键信息
正常浏览器访问时会带一堆请求头(比如User-Agent、Accept-Language这些),你只传一个URL的话,服务器根本不认可这个请求,自然不会处理,最后就超时了。
给你几个快速排查的小建议:
- 先给请求加个浏览器的User-Agent试试,同时加上timeout参数避免解释器一直挂着:
import requests headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } response = requests.get('https://www.zomato.com', headers=headers, timeout=10)
- 如果还是不行,换个网络(比如手机热点)试试,排除IP被限制的可能。
- 用浏览器打开Zomato官网,看看能不能正常访问——如果浏览器也打不开,那就是网络或地区限制的问题,和代码无关。
内容的提问来源于stack exchange,提问作者Suraj Kumar Ghosh
相关产品推荐
相关产品推荐

