powershell - 即使适用于所有浏览器,调用 webrequest 也无法获取网站数据
问题描述
Powershell:对于特定站点,invoke-webrequest 不适用于我。尝试了很多东西,比如设置 TLS 设置等。但仍然失败。一个独特的事情是它适用于第一个请求,然后发布然后失败 15 分钟,但通过浏览器浏览网站时并非如此。谁能帮帮我
Invoke-WebRequest 'https://www1.nseindia.com/products/content/equities/equities/eq_turnapr2020.htm'
对于下一个请求,它会永远等待然后超时。但在浏览器中并非如此(在 IE、chrome 中)
解决方案
这是因为网站的反刮擦机制。要绕过这一点,我们需要让它感觉像是通过浏览器发出的用户请求。对于本网站的当前问题,解决方案是在 Invoke-WebRequest 中包含标头。您可以通过 Chrome 开发人员工具 > 网络选项卡 >(右键单击 url)> 复制 > 复制为 powershell 来获取请求标头的副本。然后粘贴并获取标题的哈希表。(然后您可以删除 cookie 部分)。
推荐阅读
- python - 如何将类对象添加到列表中?
- react-native - 反应本机设置错误。无法创建Java虚拟机
- node.js - 因未创建 Visual Studio 2017 而获得。原因?
- svg - 如何使用 SVG 作为 PWA 图标?
- java - Java 11 - ReflectionUtil cxf-core 字段 java.net.Authenticator.theAuthenticator
- javascript - 如何修复脚本标签中的 src 属性
- scala - Intellij IDEA: sbt compile 在命令中是ok的,但是为什么build.sbt是红色高亮的?
- python - 如何将保存在 keras 1.1.0 中的 model.json 更新为最新(tensorflow 2.3.1)?
- php - 打开文本文件并通过php在textarea中读取它
- wpf - 如何根据 TextBox 值绑定控件(StackPanel)的可见性?