如何批量下载页面源

时间:2019-03-19 01:02:57

标签: xml batch-file

我想知道如何批量下载任何网页的XML源。

假设我正在下载view-source:https://www.google.com/,我将如何获取文本并将其另存为TXT文件在我的计算机上?

调用其他语言的次数越少越好,我至少需要使用批处理或powershell。

编辑:为澄清起见,我这里没有过滤任何内容,我只想要原始XML。

2 个答案:

答案 0 :(得分:1)

PowerShell 2.0 +

在PowerShell 2.0+中,您可以运行以下代码将网站的HTML / XML下载到文件中:

$webclient = new-object system.net.webclient;
$webclient.DownloadString('https://www.google.com/') | Set-Content -Path .\file.txt

您可以将其减少为以下一行:

(new-object system.net.webclient).DownloadString('https://www.google.com/') | Set-Content -Path .\file.txt

可以在命令行中以以下方式运行:

powershell.exe -executionpolicy --command "(new-object system.net.webclient).DownloadString('https://www.google.com/') | Set-Content -Path .\file.txt"

PowerShell 3.0 +

在PowerShell 3.0+中,您可以运行以下代码将网站的HTML / XML下载到文件中(如Squashman所建议):

$R = Invoke-WebRequest -URI https://www.google.com/
$R.Content | Set-Content -Path .\file.txt

您可以将其减少为以下一行:

(Invoke-WebRequest -URI https://www.google.com/).Content | Set-Content -Path .\file.txt

可以在命令行中以以下方式运行:

powershell.exe -executionpolicy --command "(Invoke-WebRequest -URI https://www.google.com/).Content | Set-Content -Path .\filer.txt"

在大多数情况下,您还需要添加代码来处理行尾(通常仅为\n)。许多Windows文本编辑器(例如记事本)将不会显示这些文本,因此将它们替换为\r\n是有意义的。

答案 1 :(得分:1)

您可以从命令行使用 ...

curl.exe -s -o "output.txt" https://www.google.com/
curl.exe -s https://www.google.com/ > "output.txt"

...或

xidel.exe -s https://www.google.com/ --download "output.txt"
xidel.exe -s https://www.google.com/ -e "$raw" > "output.txt"