如何验证返回“403”错误的 URL

问题描述

我正在使用 XMLHTTP 从站点 A 获取 html。

Dim htmldoc As MSHTML.HTMLDocument
Set htmldoc = New MSHTML.HTMLDocument

Dim xmlhttp As XMLHTTP60
Set xmlhttp = New XMLHTTP60

With xmlhttp
    .Open "GET",siteAurl,False
    .Send
    htmldoc.body.innerHTML = .responseText
End With

我正在解析 htmldoc 以形成站点 B 的 URL,如下所示:https://www.siteb.com/year=2021/title_with_spaces_replaced_by_dashes.htm

当我尝试使用脚本验证站点 B 的 URL 时,我不断收到错误消息。当我检查响应时,它是“403 - 禁止”。我寻找了解决此问题的方法,但我尝试的标题不起作用。

.setRequestHeader "User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
.setRequestHeader "User-Agent","Mozilla/5.0 (iPad; U; cpu OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML,like Gecko) Mobile/7B405"
.setRequestHeader "Content-Type","application/x-www-form-urlencoded"

当我在 Chrome 中复制/粘贴生成的 URL 时,它会起作用,所以我知道至少有一些 URL 是有效的。

作为另一个测试,我使用 Selenium webdriver 设置了一个简单的脚本。这能够访问为站点 B 生成的 URL。

Dim bot As WebDriver
Set bot = New WebDriver

With bot
    ' .AddArgument "--headless"
    .AddArgument ("user-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/84.0.4147.125 Safari/537.36")
    .Start "chrome"
    .Get siteBurl
End With ' bot

问题 1:有没有办法修改 XMLHTTP 请求来验证为站点 B 生成的 URL?

问题 2:如果没有,有没有办法用 Selenium 返回响应状态码来验证生成的 URL?到目前为止,我的搜索返回了 C# 和 Java 的解决方案,但没有返回 VBA 的解决方案。

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)