[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] PowerShell如何用irm获取某个网页中的指定的下载链接?

https://www.nuget.org/packages/python
我想用irm命令获取上面网页链接中的 "Download package" 文本的链接地址, 如下图所示, 或者还有更好的办法吗? 提前感谢
http://www.picgo.net/image/A.kIeRWp

下面代码可以获取, 但是速度太慢了
  1. # 设置目标URL
  2. $url = "https://www.nuget.org/packages/python"
  3. # 下载网页内容
  4. $html = Invoke-WebRequest -Uri $url
  5. # 查找包含 "Download package" 文本的链接
  6. $downloadLink = $html.Links | Where-Object { $_.innerText -eq "Download package" }
  7. # 输出 href 属性
  8. $downloadLink.href
复制代码

TOP

本帖最后由 aloha20200628 于 2024-8-10 19:29 编辑

回复 1# meixi

假设已被下载的指定网页文件为 1.xml,用如下的批处代码可获取网页文件中包含关键词 ‘Download package’ 的a标签链址
  1. @echo off &(for /f tokens^=2^delims^=^" %%a in ('findstr /ic:">Download package<" 1.xml') do echo,%%a
  2. pause&exit/b
复制代码
不用下载 wget 等第三方专业下载工具即可直接下载网页的方法,已经试过 certutil.exe 和 powershell,其中 invoke-webrequest 最慢,(new-object System.Net.WebClient).DownloadFile 稍快...
  1. @echo off &certutil -urlcache -split -f "https://www.nuget.org/packages/python" "1.xml">nul 2>nul
  2. for /f tokens^=2^delims^=^" %%a in ('findstr /ic:">Download package<" 1.xml') do echo,%%a
  3. pause&exit/b
复制代码
  1. @echo off &powershell -c "(new-object System.Net.WebClient).DownloadFile('https://www.nuget.org/packages/python', '1.xml')"
  2. for /f tokens^=2^delims^=^" %%a in ('findstr /ic:">Download package<" 1.xml') do echo,%%a
  3. pause&exit/b
复制代码
</size>

TOP

回复 3# aloha20200628


    感谢支招, 不想用cmd, 想用powershell或c#函数

TOP

本帖最后由 aloha20200628 于 2024-8-10 21:02 编辑

回复 4# meixi

以下代码要比2楼代码快一些...
  1. (new-object System.Net.WebClient).DownloadFile('https://www.nuget.org/packages/python','1.xml')
  2. (((gc 1.xml)|sls '>Download package<') -split '"')[1]
复制代码

TOP

返回列表