如何在PowerShell中使用cookie进行wget

use*_*498 7 powershell wget

我想尝试将我的bash脚本从linux转移到powershell,但无法理解为什么它失败了.

Linux命令:

wget  -q -x  --user-agent="blablabla" --keep-session-cookies --load-cookies cook.txt http://site.com/qqq
Run Code Online (Sandbox Code Playgroud)

powershell代码:

$source = "http://site.com/qqq"
$destination = "d:\site\qqq" 

$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source, $destination)
Run Code Online (Sandbox Code Playgroud)

但此代码仅下载没有cookie的页面.我无法找到如何将PHPSESSID发送到网站.

请向我解释如何做到这一点.

And*_*ndi 13

好的,你有两个选择.

  1. 在Windows上运行wget.
  2. 在webclient对象上设置属性以复制wget标志设置的功能.

第一个很简单,只需下载Windows版本的wget即可.

这是第二个的代码.

$source = "http://site.com/qqq"
$destination = "d:\site\qqq" 

$wc = New-Object System.Net.WebClient
# Single Example
$wc.Headers.Add([System.Net.HttpRequestHeader]::Cookie, "name=value")
# Multi Example
$wc.Headers.Add([System.Net.HttpRequestHeader]::Cookie, "name=value; name2=value2"); 
$wc.DownloadFile($source, $destination)
Run Code Online (Sandbox Code Playgroud)

查看您的cookies.txt文件以获取名称值对.

我不确定如何复制-x功能wget.尝试上面的内容,看看下载后它对文件的作用.

注意 - 我无法测试这个......