You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python与Requests库爬取immobilier.ch网站图片时遭遇403禁止访问的解决方案求助

解决immobilier.ch图片爬取403 Forbidden问题

看起来你遇到的问题很典型:虽然用Selenium成功拿到了图片URL,但直接用Requests请求时被网站识别为非浏览器请求,返回了403。这是因为网站的反爬机制会检查请求头(比如User-Agent、Referer),而Requests默认的请求头和浏览器的差异很大,很容易被拦截。不过别担心,有两种靠谱的解决方法:

方法一:让Requests模拟浏览器的请求头

既然Selenium能正常访问页面,我们可以复用浏览器的请求头信息,让Requests的请求看起来更像正常用户操作:

  1. 先从Selenium的driver中获取当前浏览器的User-Agent,同时把当前页面的URL作为Referer(告诉网站这个图片请求是从合法页面发起的);
  2. 把这些头信息加到Requests的请求里,再去获取图片内容。

修改后的代码示例:

import requests
import os
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("你的目标房产页面URL")

# 获取图片URL
image_element = driver.find_element_by_class_name("im__col__content").find_element_by_tag_name("img")
image_url = image_element.get_attribute("src")

# 构造请求头:复用浏览器的User-Agent,加上当前页面作为Referer
headers = {
    "User-Agent": driver.execute_script("return navigator.userAgent;"),
    "Referer": driver.current_url
}

path = "C:/Users/potek/Jupyter_projects/APARTMENTS"
# 用带请求头的Requests请求图片
with open(os.path.join(path, "Immobilier"+str(time.time())+".jpg"), "wb") as f:
    f.write(requests.get(image_url, headers=headers).content)

driver.quit()

方法二:直接用Selenium保存图片

既然Selenium已经在浏览器里加载了图片,我们可以跳过Requests,直接用Selenium的元素截图功能保存图片,这样完全模拟用户浏览器的行为,不会触发反爬:

代码示例:

import os
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("你的目标房产页面URL")

# 找到图片元素
image_element = driver.find_element_by_class_name("im__col__content").find_element_by_tag_name("img")

path = "C:/Users/potek/Jupyter_projects/APARTMENTS"
# 直接用screenshot方法保存图片
image_element.screenshot(os.path.join(path, "Immobilier"+str(time.time())+".jpg"))

driver.quit()

额外建议

  • 不要过于频繁地请求,适当加入time.sleep(2)之类的延迟,避免被网站判定为恶意爬虫;
  • 如果还是遇到问题,可以检查是否需要处理Cookie,方法一的Requests可以加上cookies={key: value for key, value in driver.get_cookies()},把浏览器的Cookie也带上。

内容的提问来源于stack exchange,提问作者Stash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 02:42:40