【问题标题】:How to download a file with Powershell System.Net.WebClient and custom user-agent string?如何使用 Powershell System.Net.WebClient 和自定义用户代理字符串下载文件?
【发布时间】:2017-01-24 03:38:23
【问题描述】:

我正在运行以下命令以使用 Powershell System.Net.WebClient 方法下载文件:

powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://domain.name/file.name','C:\file.name')"

有没有办法自定义用户代理并保留单行命令格式?

我问的原因是该网站将请求识别为来自机器人,并且我收到了 HTTP 403 禁止错误。当我使用 Internet Explorer 时,我可以毫无问题地下载文件。我想保留单行格式,因为此命令是从 Windows 中的批处理 (.bat) 文件调用的。

【问题讨论】:

  • 我能理解一个班轮部分。但我想知道的是,你有没有想过任何 BOT 识别的方法?
  • BOT 识别基于用户代理,根据我尝试下载文件的网站的主机。

标签: powershell http batch-file user-agent system.net


【解决方案1】:

这段代码 sn-p 将与 webclient 一起执行自定义用户代理部分:

powershell -command {
    $cli = New-Object System.Net.WebClient;
    $cli.Headers['User-Agent'] = 'myUserAgentString';
    $cli.DownloadFile('https://domain.name/file.name', 'C:\file.name')
}

【讨论】:

  • 谢谢,成功了:powershell -command "$cli = New-Object System.Net.WebClient;$cli.Headers['User-Agent'] = 'myUserAgentString';$cli.DownloadFile('https://domain.name/file.name', 'C:\file.name')"
  • 完美。这是解决机器人的好方法@jeff0000
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 2012-09-13
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
相关资源
最近更新 更多