Python requests.get()返回403 Forbidden错误,寻求技术解决方案
解决requests访问aruodas.lt返回403 Forbidden的问题
- 网站的反爬机制通常会验证多个请求头字段,仅提供
User-Agent和Accept-Language不足以通过校验。需要补充更多常见的浏览器请求头,模拟更真实的请求行为。 - 过旧的
User-Agent版本也可能被网站拦截,建议使用较新的浏览器UA字符串。
修改后的代码示例
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", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", "Referer": "https://en.aruodas.lt/", "Connection": "keep-alive", "Upgrade-Insecure-Requests": "1" } res = requests.get('https://en.aruodas.lt/butai/vilniuje/puslapis/1/', headers=headers) print(res.status_code) print(res.text[:500]) # 打印部分响应内容验证是否成功
如果仍返回403,尝试维持会话获取Cookie
部分网站会通过Cookie验证会话合法性,可以先访问首页获取Cookie,再请求目标页面:
import requests session = requests.Session() 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", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", } # 先访问首页建立会话并获取Cookie session.get('https://en.aruodas.lt/', headers=headers) # 再请求目标列表页 res = session.get('https://en.aruodas.lt/butai/vilniuje/puslapis/1/', headers=headers) print(res.status_code)
注意事项
- 不要短时间内频繁发送请求,建议添加
time.sleep()设置请求间隔,避免触发更严格的反爬限制。 - 提前查看网站的
robots.txt规则,确认目标页面允许爬虫访问。
内容的提问来源于stack exchange,提问作者user3672160
相关产品推荐
相关产品推荐

