Excel VBA通过Selenium为Edge/Chrome/Firefox设置Referer请求头
Selenium VBA 设置Referer请求头实现网页跳转
原IE环境下的可行代码
Sub OpenWebsiteVBA() Dim URL as String Dim RefString as String Dim oIE As InternetExplorer Set oIE = New InternetExplorer With oIE URL = "https://www.xxxxxxxxxxx.com/index.php?button=Search" RefString = "ver_name=All&order_by=2&land_abk=eg&ver_id=3" .Navigate2 URL, Headers:="Referer: " & RefString End With End Sub
切换到Selenium后的问题
已安装Edge及edgedriver,Excel中添加了Selenium Type Library引用,但尝试多种常规方法设置Referer均无效,原尝试代码如下:
Sub OpenWebsiteSELENIUM() Dim URL As String Dim RefString As String Set oEdge = New WebDriver 'or Set oIE = New ChromeDriver With oEdge URL = "https://www.xxxxxxxxxxx.com/index.php?button=Search" RefString = "ver_name=All&order_by=2&land_abk=eg&ver_id=3" .start "edge" 'or .start "chrome" '.AddArgument ("Referer:" & RefString) <= doesn't work! '.SetPreference "Headers: ", "Referer: " & RefString <= doesn't work! '.SetPreference "Referer: ", RefString <= doesn't work! '.SetPreference "Referer", RefString <= doesn't work! '.SetPreference "Referer=", RefString <= doesn't work! .Get URL End With End Sub
解决方案:利用CDP设置请求头
Selenium无法通过AddArgument或SetPreference直接设置Referer这类请求头,必须借助Chromium内核浏览器的CDP(Chrome DevTools Protocol)来实现,以下是适配Edge/Chrome的可行代码:
Sub OpenWebsiteWithReferer_Selenium() Dim driver As New WebDriver Dim URL As String Dim RefString As String Dim headers As Object URL = "https://www.xxxxxxxxxxx.com/index.php?button=Search" RefString = "ver_name=All&order_by=2&land_abk=eg&ver_id=3" ' 初始化浏览器(Edge为例,Chrome改为"chrome"即可) driver.Start "edge" ' 构造请求头字典 Set headers = CreateObject("Scripting.Dictionary") headers("Referer") = RefString ' 通过CDP设置额外HTTP请求头 driver.ExecuteChromeCommand "Network.setExtraHTTPHeaders", headers ' 启用网络监控,确保请求头生效 driver.ExecuteChromeCommand "Network.enable", Empty ' 访问目标网址 driver.Get URL ' 如需关闭浏览器,可添加 driver.Quit End Sub
重要说明:
- 必须调用
Network.enable,否则设置的请求头不会被应用到后续网络请求中 - 该方案适用于所有基于Chromium内核的浏览器(Edge、Chrome等)
- 使用
Scripting.Dictionary构造请求头,格式完全符合CDP的要求
内容的提问来源于stack exchange,提问作者Jasco
相关产品推荐
相关产品推荐

