Selenium模拟来源站点:解决直接访问URL的Internal Server Error问题
如何在Selenium中模拟从Yandex跳转访问目标站点?
可行。问题根源是目标网站通过Referer请求头校验访问来源:直接用Selenium访问时Referer为空,触发服务器错误;而从Yandex搜索结果点击时,请求会携带来自Yandex的Referer,因此能正常访问。
只需在Selenium请求中添加Referer头,将值设为https://yandex.ru/即可模拟该场景,无需实际访问Yandex。
具体实现代码:
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() driver = webdriver.Chrome(options=options) # 通过CDP命令设置Referer请求头 driver.execute_cdp_cmd('Network.setExtraHTTPHeaders', { 'headers': { 'Referer': 'https://yandex.ru/' } }) target_url = "https://kinoxor.pro/650-mir-druzhba-zhvachka-2024-05-06-19-54.html" driver.get(target_url)
补充说明:
如果设置Referer后仍无法访问,可尝试额外模拟真实用户的User-Agent(比如Yandex浏览器的UA),或检查是否需要携带其他常见请求头,但核心解决方式是添加正确的Referer字段。
内容的提问来源于stack exchange,提问作者mascai
相关产品推荐
相关产品推荐

