即使适用于所有浏览器,调用 webrequest 也无法获取网站数据

Invoke webrequest fails to fetch website data even though works in all browsers

Powershell:invoke-webrequest 不适用于我的特定站点。尝试了很多东西,比如设置 TLS 设置等。但仍然失败。 一个独特的事情是它适用于第一个请求,post 然后它失败了 15 分钟,但通过浏览器浏览网站时情况并非如此。谁能帮帮我

Invoke-WebRequest 'https://www1.nseindia.com/products/content/equities/equities/eq_turnapr2020.htm'

对于下一个请求,它将永远等待然后超时。但是在浏览器中不是这样的(在IE中,chrome)

Timeout error image. First request works

这是因为网站的anti-scrape机制。为了绕过它,我们需要让它感觉像是通过浏览器的用户请求。对于这个网站当前的问题,解决方案是在 Invoke-WebRequest 中包含 headers。 您可以通过 Chrome 开发人员工具 > 网络选项卡 >(右键单击 url)> 复制 > 复制为 powershell 来获取请求 headers 的副本。 然后粘贴并获取 headers 的哈希表。(然后您可以删除 cookies 部分)。