网页爬取遇访问拒绝错误:AmbitionBox企业列表爬取求助
解决Ambitionbox访问拒绝(Access Denied)的方法
1. 修正User-Agent格式
你的User-Agent存在多余空格,比如Win 64应改为Win64,Apple WeKit应改为AppleWebKit,格式错误会导致网站识别异常。修正后的代码:
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36' } response = requests.get('https://www.ambitionbox.com/list-of-companies?page=1', headers=headers) print(response.text)
2. 添加更多请求头字段
网站可能会校验Referer、Accept-Language等字段,模拟更真实的浏览器请求:
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36', 'Referer': 'https://www.ambitionbox.com/', 'Accept-Language': 'en-US,en;q=0.9', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' } response = requests.get('https://www.ambitionbox.com/list-of-companies?page=1', headers=headers)
3. 使用会话保持(Session)
部分网站会通过会话Cookie验证请求合法性,用requests.Session()维持会话:
session = requests.Session() session.headers.update({ 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36', 'Referer': 'https://www.ambitionbox.com/' }) # 先访问首页获取初始Cookie session.get('https://www.ambitionbox.com/') # 再请求目标页面 response = session.get('https://www.ambitionbox.com/list-of-companies?page=1') print(response.text)
4. 更换IP地址
若以上方法无效,大概率是你的IP被网站封禁。可尝试使用代理IP:
proxies = { 'http': 'http://your-proxy-ip:port', 'https': 'https://your-proxy-ip:port' } response = requests.get('https://www.ambitionbox.com/list-of-companies?page=1', headers=headers, proxies=proxies)
注意:代理IP需确保可用,避免使用公开低质量代理。
5. 绕过Cloudflare防护(若存在)
如果网站启用了Cloudflare的DDOS防护,普通requests无法绕过,可使用cloudscraper库模拟浏览器行为:
先安装库:
pip install cloudscraper
再执行代码:
import cloudscraper scraper = cloudscraper.create_scraper() response = scraper.get('https://www.ambitionbox.com/list-of-companies?page=1') print(response.text)
内容的提问来源于stack exchange,提问作者Vishesh Singh
相关产品推荐
相关产品推荐

