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

如何将VBA脚本中的XMLHTTP改为ServerXMLHTTP以启用代理?

把XMLHTTP替换为ServerXMLHTTP启用代理的解决方案

嘿Qharr,我来帮你搞定这个代理配置的问题~其实把MSXML2.XMLHTTP换成MSXML2.ServerXMLHTTP并启用代理的操作很直接,关键是要注意对象的正确调用顺序和版本指定,下面给你一步步拆解:

核心修改步骤

  • 替换对象ProgID:XMLHTTP没有代理相关方法,必须改用MSXML2.ServerXMLHTTP.6.0(指定6.0版本是为了兼容性和支持现代协议,避免旧版本的坑)。
  • 调整代理方法调用时机:setProxy和setProxyCredentials必须在.Open之后、.Send之前调用,这是很多人容易踩的细节坑。

修改后的完整代码

With CreateObject("MSXML2.ServerXMLHTTP.6.0")
    .Open "GET", urlx, False
    
    ' --- 代理配置部分(取消注释并填写你的代理信息)---
    ' 2代表使用指定的代理服务器,其他类型可查官方文档
    .setProxy 2, "proxy.net:8080"
    ' 如果代理需要账号密码验证,取消下面这行注释
    .setProxyCredentials "proxy_login", "proxy_password"
    
    ' 可选:添加浏览器请求头,模拟真实访问(解决谷歌搜电话号码无结果的可能)
    .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
    
    ' 可选:启用自动重定向(处理谷歌可能的3xx跳转)
    .Option(6) = True
    
    .send
    html.body.innerHTML = StrConv(.responseBody, vbUnicode)
End With

额外提示(针对谷歌搜电话号码无结果的问题)

你提到的搜索电话号码无结果,大概率和自动化请求被谷歌识别有关,除了加User-Agent头,还可以尝试:

  • 添加更多真实浏览器请求头,让请求更贴近自然访问:
    .setRequestHeader "Accept-Language", "zh-CN,zh;q=0.9"
    .setRequestHeader "Referer", "https://www.google.com/"
    
  • 检查代理IP的地区:如果代理IP所在地区的谷歌搜索规则不同,也可能导致结果缺失,可以尝试切换到目标地区的代理。

内容的提问来源于stack exchange,提问作者Tahor Sui Juris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:06:10