使用 powershell 从 HTML 网站抓取图像链接

2023-12-11

我想批量下载一些图片库。这些图像是免费提供的,无需任何许可。我一生都无法让它发挥作用。这是我到目前为止所拥有的。 $pattern 吐出的是整个 HTML 行,而不仅仅是图像链接。有什么可以给我的指点吗?出于测试目的,该循环设置为仅运行一次。循环将遍历所有按数字组织的页面。

# Variables
$i=1        # Webpage Counter
$j=1        # Image Counter
$rootDir = "http://website.com/sport/galleries/"
$saveDir = "C:\Users\user\Desktop\"
$webpagetxt = "C:\Users\user\Desktop\page.txt"
$links = "C:\Users\user\Desktop\links.txt"
$regex = "http://website.com/galleries/[0-9]*/[^\.]*.JPG"

# Create folder to download to
#New-Item -Name SiouxSportsGalleries -ItemType directory

# Start Web Client
$client = New-Object System.Net.WebClient

# Main loop to get image links and download
    For($i=10; $i -le 10; $i++){

        # Download source code of the web page.
        $url = $rootDir+$i+'.htm'
        $webclient = new-object System.Net.WebClient
        $webpage = $webclient.DownloadString($url)
        $webpage > "$webpagetxt"

    # Parse web page and find image link.
       $pattern = Get-Content $webpagetxt | Select-String -pattern $regex -Allmatches
       echo "This is the link" $pattern
    #$pattern > $links

 }

您需要提取匹配的值。Select-String返回对象,当你echo它,发生的是$pattern.ToString(). ToString()返回行,而不是匹配值。这将仅返回所有链接:

Get-Content $webpagetxt | Select-String -pattern $regex -Allmatches | % { $_.Matches | % { $_.Value } }

顺便说一句,不要保存网页并重新打开它get-content,您可以简单地在换行符上拆分字符串以获得一个数组(如果这是您保存它的唯一原因)。 :-)

$webpage -split "`n" | Select-String -pattern $regex -Allmatches | % { $_.Matches | % { $_.Value } }

EDIT要下载它,你可以用另一个 foreach 循环扩展它:

$rootDir = "http://website.com/sport/galleries/"
$saveDir = "C:\Users\user\Desktop\"
$webpage -split "`n" | Select-String -pattern $regex -Allmatches | % { $_.Matches | % { $_.Value } } | % {
    #Get local path
    $local = $_.Replace($rootDir, $saveDir)
    #Create path
    $file = New-Item $local -ItemType file -Force
    #Download
    $wb.DownloadFile($_, $file.FullName)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 powershell 从 HTML 网站抓取图像链接 的相关文章

  • Antd select 元素:如何禁用输入?

    我正在尝试使用模式 multiple 的选择元素 我希望禁用输入 这意味着用户只能在现有选项之间进行选择 而不能输入文本 我该怎么做呢 我的元素 import Select from antd import antd dist antd c
  • 手机上的网页滚动条可以隐藏吗?

    我正在尝试在移动设备上隐藏滚动条 一切在桌面上看起来都很好 没有滚动条 但是当我检查某些 Android 设备 ipad 时 我仍然可以看到灰色 细小的拇指 可以从浏览器中隐藏预定义的滚动条 我的代码 在桌面上运行良好 body webki
  • Beautiful Soup 获取动态表数据

    我有以下代码 url https www basketball reference com leagues NBA 2017 standings html all expanded standings html urlopen url so
  • 可以设置选择元素的样式,以便在下拉列表“关闭”时显示所选选项的样式吗?

    鉴于这个简单的 html
  • 哪些浏览器支持 HTML5 WebSocket API?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我将开发一个在浏览器中运行的即时消息应用程序 哪些浏览器支持WebSocket API
  • 在 Magento 中使用缩略图切换基本图像

    在定制的产品视图页面上 我正在处理基本图像 大图像 和缩略图列表 这些缩略图是与媒体库中的产品相关的其他图像 它们只是普通图像 而不是定义的图像 缩略图 我的任务是获取它 以便当您单击缩略图时它会更改上面的基本图像 我已经可以工作了 但是我
  • 网络驱动程序 | IE9 |设置自动下载文件

    我需要测试下载操作 我已经为 FF 和 Chrome 浏览器配置了远程网络驱动程序 可以自动下载文件 而无需任何提示和弹出窗口 但我找不到任何有用的信息 如何允许 IE9 自动下载文件 我尝试过的 找到任何可能的方法来配置驱动程序本身 什么
  • Jsoup - 隐藏的div类?

    我正在尝试爬取 div 类 但到目前为止我尝试过的一切都失败了 我正在尝试抓取元素 a href div class s buttons button s buttons buttonAlt s buttons buttonSlashBac
  • 如何使用溢出滚动设置 tbody 高度

    我在设置 tbody 高度宽度溢出滚动时遇到问题 h3 Table B h3 table style border 1px solid red width 300px display block thead tr td Name td td
  • htmlspecialchars() 期望参数 1 为字符串,Laravel 中给出的数组

    我的程序中出现了这个错误Laravel刀片模板 htmlspecialchars 期望参数 1 为字符串 给定数组 我尝试将数组转换为刀片模板中的字符串 这是代码 Where silderImageDataArray是这里存储的变量和值 这
  • 使用 jquery UI 调整大小的分屏 div

    我心中有一个设计 涉及 html 中的拆分面板视图 类似于 winforms 拆分面板 我一直在尝试jQuery UI 可调整大小 http jqueryui com demos resizable我喜欢这个功能 我只是似乎无法协调两者的大
  • 为什么 jQuery 的 .change() 事件仅在单击鼠标右键时触发?

    我在使用 jquery 时遇到了问题 change 当我修改输入元素时发生事件 据说 每当我对所述元素进行实时更改时 该事件就会触发 但就我而言 它仅在我按下右键单击按钮后才会触发 这是我的代码laravel框架 HTML div clas
  • 如何将身份验证详细信息传递给 iframe 内的应用程序?

    我有一个网页 想在其中显示詹金斯的网页 因此使用iframe like But http xxx xxx xx xx 8080 view Nightly 20Builds 20 打开登录页面 因此无法直接显示内容 其实我想在没有登录的情况下
  • svg路径指针事件-点击检测

    我正在编写一些 HTML 以便可以使用 HTML SVG 和 PATH 标签绘制贝塞尔曲线 我的曲线效果非常好 现在我想添加一项功能 如果用户将鼠标悬停在曲线上 我会更改颜色 但实际情况是 SVG 创建了一个包含路径的大框 并捕获所有点击
  • 缩放对象上的弹跳动画

    拥有对象比例 然后在返回到原始比例因子之前以该比例因子执行弹跳动画的最佳方法是什么 我意识到我可以做一些事情 比如将其缩放到 2 2 然后 1 8 然后 2 0 但我正在寻找一种方法 您只需在比例因子上执行弹跳动画 因为我的比例因子会改变
  • Internet Explorer 10,最大 div 大小为 1.533.917 像素

    我需要制作一个非常大的 div 以百万像素为单位 搜索我发现这个线程证明 IE 可以管理最多 10 000 000 px 确定最大可能的 DIV 高度 https stackoverflow com questions 7719273 de
  • 使用 JSON 传递 HTML

    我正在使用 JSON 将数据传递到 iPhone 和 iPad 数据的一个字段是 HTML 问题是编码 这是我得到的回复 gt GadgetHTML strong Hello strong gt from Catworld br n img
  • serde_json::from_str 错误,其中字符串来自文件

    extern crate serde json use serde json Value use std fs File use std io prelude fn main let filepath map test anhui txt
  • HTML 和 CSS 的基本编码标准 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道它们是否是像 PSR 01 这样的 HTML 和 CSS 基本编码标准 我尝试谷歌搜索和搜索 但没有找到 我建议看看类似的东西
  • Origin 无权使用地理定位服务 - 即使通过 HTTPS

    我有一个通过 HTTPS 使用 HTML5 地理定位的网页 它在桌面浏览器上运行良好 然而 在 iOS Safari 上 我收到错误 Origin 无权使用地理定位服务 我已确保页面上的所有内容都通过 HTTPS 加载 每个图像 每个脚本和

随机推荐

  • Python:“NoneType”对象不可下标“错误[重复]

    这个问题在这里已经有答案了 我是 Python 数据库的新手 因此为了练习一些关键技能 我正在构建一个登录屏幕 将用户名和散列密码写入数据库 然后根据数据库中的内容检查用户的输入 但是 当尝试从数据库中提取用户名和密码并将其存储在变量中时
  • css 上的 Margin-Right 不起作用

    我在学校期间一直在搞编码 因为它是我在学校最感兴趣的事情 并且在学年的大部分时间里我一直在自学 Html Css 和 Js 我一直在重新创建学校的网站 但遇到了一些问题 我的 CSS Margin Right 命令不起作用 我一直在尝试集中
  • iOS:SDWebImageManager 不缓存图像

    我正在使用创建幻灯片UIImageView 并且图像链接位于数组中 所以当我这样做时 我了解到SDWebImageManager让我们只点击 URL 一次 然后它就会缓存图像以供以后使用 但我在应用程序中监视的是 我相信第一个图像已被缓存
  • 获取变量或参数的名称[重复]

    这个问题在这里已经有答案了 我想获取变量或参数的名称 例如 如果我有 var myInput input var nameOfVar GETNAME myInput gt nameOfVar should be myInput void t
  • Sqlldr 接受 1 种日期格式

    我有一个动态生成控制文件的sql脚本文件 它接受日期格式为 mm dd yyyy 的日期字段 sqlldr 正在从 csv 文件加载日期 但它也接受日期格式 例如 mm dd yyyy 或 mm dd yyyy 我如何让它只接受 MM DD
  • 为什么我的 Java try...catch 出现错误?

    我开始自学更多有关 Java 错误处理的知识 这是我的第一个程序 我尝试查看特定错误而不是使用catch Exception e 作为一个通用的包罗万象的catch 我正在删除一个文件并返回一条消息 表明该文件已成功删除或删除失败 如果删除
  • 大端和小端值是否可移植?

    你好 我在小端和大端有一个小问题 我知道这个问题已经问过n次了 但我无法弄清楚以下几点 让我们取 int i 10 它以二进制存储为00000000 00000000 00000000 00001010在堆栈部分如下 00000000 00
  • GBoard 键盘 GIF 贴纸集成

    我正在努力支持GBoard在我的应用程序中 我希望用户能够从 GBoard 中选择 GIF 我的onCommitContent看起来像这样 Override public void onCommitContent InputContentI
  • raphael.js - 将饼图转换为圆环图

    我正在尝试使用位于此处的 raphael js 示例 http raphaeljs com pie html 但我想将饼图转换为甜甜圈图 所有切片中间有一个洞 目前 每个切片都是使用以下代码创建的 function sector cx cy
  • knitr:块中的代码意外地被包装

    在使用 knit2pdf 和 LaTeX 的投影仪演示中 我有时 发现块中的代码被包装 即使我已经设置了tidy FALSE全球 例如 这个块 item Fit this using func glm lt
  • 保存到 CSV 时日期信息消失

    我试图从互联网上提取一些数据 然后将其导出到 CSV 文件 但我丢失了 CSV 文件中的日期信息 我不明白为什么 我是 R 新手 所以请保持简单的回答 这是我的代码 Library quantmod getSymbols SPY from
  • PHPUnit 测试双打

    我开始使用 PHPUnit 来测试我的代码 但我在理解双重测试方面遇到一些问题 我尝试存根类方法 b 以在从另一个方法调用时返回 true 而不是通常的行为 false 我有这样的代码 class MyClass function a re
  • 创建后数组大小发生变化

    谁能解释一下这里发生了什么 我的印象是 数组的大小一旦创建和声明就无法更改 public class ArrayManipulation public static void main String args int a 1 2 3 new
  • 解析 TO 标头中符合 RFC 822 的地址

    我想使用 preg match all 解析电子邮件地址列表 如 TO 标头中的列表 以获取用户名 如果存在 和电子邮件 与 Pear 中的 mailparse rfc822 parse addresses 或 Mail RFC822 pa
  • 返回 python 中最常出现的前 n 个字符及其各自的计数

    如何返回前 n 个最常出现的字符及其各自的计数 例如 aaaaaabbbbcccc 2应该返回 a 6 b 4 在Python中 我试过这个 def top chars input n list1 list input list3 list
  • 将重复参数传递给 Numpy 向量化函数的最佳方法

    所以 继续我和 TheBlackCat 的讨论这个答案 我想知道将参数传递给 Numpy 向量化函数的最佳方法 所讨论的函数定义如下 vect dist funct np vectorize lambda p1 p2 vincenty p1
  • 在jquery中向上/向下移动

    我有 5 个跨度 我试图在 jquery 中将它们向上 向下移动 交换位置 a href Up a a href Down a span Test1 span br span Test2 span br span Test3 span br
  • Fortran 2003 中参数化派生类型的问题

    我正在自学 Fortran 2003 以便将其用于我目前正在进行的一个研究项目 我已经习惯了 Fortran 90 但这个项目需要使用参数化类型 所以我要转向 2003 我正在关注这个网站的描述了如何定义参数化类型 并根据网站的示例编写了一
  • 处理 Google Play 服务更新消息

    我在我的应用程序中使用 googleservices 版本 8 3 但是 当我在旧设备 LG II Optimus 上下载应用程序时 它向我显示以下消息 除非您更新 Google Play 否则此应用程序将无法运行 服务 我接受并更新了谷歌
  • 使用 powershell 从 HTML 网站抓取图像链接

    我想批量下载一些图片库 这些图像是免费提供的 无需任何许可 我一生都无法让它发挥作用 这是我到目前为止所拥有的 pattern 吐出的是整个 HTML 行 而不仅仅是图像链接 有什么可以给我的指点吗 出于测试目的 该循环设置为仅运行一次 循