Power Query无法从更新后的指定网站加载数据,请求解决方法
解决Power Query访问verbalcommits.com时的403禁止访问错误
针对你遇到的Expression.Error: Access to the resource is forbidden和Microsoft.Mashup.Engine.Interface.ResourceAccessForbiddenException报错,本质是网站更新后启用了反爬机制,拦截了Power Query默认的请求。以下是可行的解决步骤:
1. 模拟浏览器请求头
Power Query默认的请求标识会被网站识别为非浏览器请求,添加标准的浏览器User-Agent即可绕过大部分基础拦截:
- 打开Power Query编辑器,进入对应查询的高级编辑器
- 将原有的
Web.Contents调用替换为以下代码:
Web.Contents("https://www.verbalcommits.com/transfers/2023/D1", [Headers=[ #"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", #"Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" ]] )
- 保存并刷新查询,验证是否恢复访问
2. 启用Cookie支持
部分网站需要会话Cookie验证身份,在请求中添加Cookie启用参数:
- 在上述
Web.Contents的参数中加入EnableCookie=true,示例:
Web.Contents("https://www.verbalcommits.com/transfers/2023/D1", [Headers=[ #"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", #"Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" ], EnableCookie=true] )
3. 手动注入会话Cookie(若前两步无效)
如果网站有更严格的会话验证,需要从浏览器获取有效Cookie:
- 用Chrome/Firefox打开目标页面,按F12打开开发者工具
- 切换到Network标签,刷新页面,找到第一个请求(URL为目标地址)
- 在请求头中复制
Cookie字段的完整内容 - 将Cookie添加到Power Query的Headers中:
Web.Contents("https://www.verbalcommits.com/transfers/2023/D1", [Headers=[ #"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", #"Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", #"Cookie"="这里粘贴你从浏览器复制的Cookie内容" ], EnableCookie=true] )
4. 调整Power Query隐私设置
过高的隐私级别可能阻止跨域请求:
- 打开Excel选项 → 数据 → 隐私设置
- 选择“忽略隐私级别设置”(仅针对你信任的网站使用此选项)
注意事项
- 网站反爬机制可能随时更新,上述方法可能仅临时有效
- 避免频繁刷新请求,防止IP被网站封禁
- 若网站提供官方API,优先使用API获取数据,稳定性更高
内容的提问来源于stack exchange,提问作者clay
相关产品推荐
相关产品推荐

