微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何验证返回“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 举报,一经查实,本站将立刻删除。