如何使用 PowerShell 解析网站的 HTML

2023-11-22

我正在尝试检索有关网站的一些信息,我想查找特定的标签/类,然后返回包含的文本值(innerHTML)。这就是我到目前为止所拥有的

$request = Invoke-WebRequest -Uri $url -UseBasicParsing
$HTML = New-Object -Com "HTMLFile"
$src = $request.RawContent
$HTML.write($src)


foreach ($obj in $HTML.all) { 
    $obj.getElementsByClassName('some-class-name') 
}

我认为将 HTML 转换为 HTML 对象存在问题,因为当我尝试“选择对象”时,我看到很多未定义的属性和空结果。

那么花了两天时间,我该如何使用 Powershell 解析 HTML 呢?

  • 我不能使用IHTMLDocument2方法,因为我没有安装Office(无法使用 IHTMLDocument2)
  • 我无法使用Invoke-Webrequest没有-UseBasicParsing因为 Powershell 在访问 ParsedHTML 属性时挂起并生成额外的窗口(parsedhtml 不再响应 and 在 PowerShell 3.0 中使用 Invoke-Webrequest 会产生 Windows 安全警告)

既然用正则表达式解析 HTML 是一个很大的禁忌,那么我该怎么做呢?似乎什么都不起作用。


由于没有其他人发布答案,我设法使用以下代码获得了一个可行的解决方案:

$request = Invoke-WebRequest -Uri $URL -UseBasicParsing
$HTML = New-Object -Com "HTMLFile"
[string]$htmlBody = $request.Content
$HTML.write([ref]$htmlBody)
$filter = $HTML.getElementsByClassName($htmlClassName)

对于某些 URL,我发现 $filter 变量为空,而其他 URL 则填充了该变量。总而言之,这可能适合您的情况,但似乎 Powershell 并不是进行更复杂解析的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PowerShell 解析网站的 HTML 的相关文章

  • 我应该清理 Markdown 吗?

    对于我的帖子实体 我将 HTML 和 MARKDOWN 存储在数据库中 HTML 是从 MARKDOWN 转换而来 HTML 用于在页面上呈现 MARKDOWN 用于编辑功能 使用 WMD 我在存储到数据库之前清理 HTML 问题是 我也应
  • 如何在html5画布中向前和向后移动圆圈中的对象?

    我正在 html5 canvas 中开发一个小应用程序 我需要使用键盘按键以圆周运动移动对象 我可以使用键盘按键移动对象 但存在错误 该对象不会从同一位置向后或向前移动 任何人都可以帮助我完成此操作 请检查以下代码 任何形式的帮助将非常感激
  • Bootstrap轮播不滑动

    我一直在尝试使用 Bootstrap Carousel 并在一定程度上取得了成功 我也可以单击并更改图像 但我有一个问题 只是不滑动而已 我哪里做错了 html div class carousel slide ol class carou
  • HTML5 中填充笔划的透明度

    我正在 HTML5 中开发一个涂鸦应用程序 我想做一种桶功能 这个想法是绘制一条路径 它将被关闭并用选定的颜色 描边的颜色 填充 它对于纯色效果很好 但如果我想要透明的描边和填充 我会遇到这个问题 所发生的情况是填充完成到笔划的中间 路径的
  • 父元素的 mousedown 事件中的 offsetX 和 offsetY 错误

    我在 mousedown 上获取 offsetX 时遇到问题 下面是我的代码 div Click the text The mouseDown function is triggered when the mouse button is p
  • 如何使h1标签以其实际宽度居中

    我需要使 h1 标签居中 还需要在其周围制作边框 为了防止占用更多宽度 我给出display inline block但标签没有响应text align center then h1 text align center border 1px
  • 使整个网页着色

    How I can take any given webpage and make everything look tinted a certain color Basically if you take google and tint i
  • 如何在没有文本修饰的文本下方添加一行:下划线? [复制]

    这个问题在这里已经有答案了 我需要在文本下方添加一行 而不需要文本装饰 下划线 否则如何在文本和行之间创建自定义空间 我们所做的 您可以使用Border Bottom和一些Padding Bottom a border bottom 1px
  • 获取要在新浏览器中显示的选择值

    嘿 基本上这是我的代码 运行的第一个脚本允许在 URL 中显示所选值
  • Bootstrap 4 行布局没有响应

    我正在使用 Bootstrap 4 在 MEAN 堆栈上为新闻文章布局创建一个 html 模板 但这应该不重要 对于这种总体布局的要求是 一篇 特色 文章位于其自己的列中 而其他 8 篇文章位于另一列中的两行中 当在较小的屏幕或移动设备上查
  • 为什么参数名称不能以数字开头?

    变量名可以是数字字母 为什么参数名不能也这样 因为first parameter char of the command parameter中指定的语法Powershell语言规范 http www microsoft com en us
  • 在java中将DataURL图像转换为图像文件

    我在我的 java servlet 中接收图像 DataURL 它看起来像 data image jpeg base64 9j 4AAQSkZJRgABAQAAAQABAA 我需要将其另存为图像文件 我该怎么做 The simplest w
  • Jquery 关注下一个带有类的元素

    我正在尝试创建一个函数 当按下 Enter 键时 会选择带有类的下一个输入 我已经设法 focus 同一行中的下一个元素 但是 如果我需要选择下一行的下一个输入 它将无法继续 下一行中的第一个 quantity 文本框需要获得焦点 控制台没
  • html5 vs flash - 完整的比较图表在哪里? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 因此 自从史蒂夫 乔布斯说 Flash 很糟糕并暗示 HTML5 可以完成 Flash 可以做的所有事情
  • Powershell - 将字符串拆分为由开始和结束字符串划分的数组

    我有一个多行字符串 来自 json 例如 somekey somevalue somekey somevalue somekey somevalue somekey somenumber somekey null 我想将字符串拆分为一个数组
  • Powershell pscustomobject 格式-表新行而不是一行

    我有一个非常大的员工 JSON 响应 我正在尝试将其转换为表格式 导出为 CSV 并最终插入到 SQL Server 中 我能够确定如何从 json 文件中获取所有变量 但是现在我将所有值插入到每列的一行中 而不是为每个员工插入一个新行 另
  • 使用js获取选择选项的onclick事件

    我有一个非常令人沮丧的问题 我有这个代码 它过滤掉我的结果并将它们输入到选择框中 var syn
  • 使用带有箭头的 MaterializeCSS 轮播 - 如何使用普通 javascript 进行初始化

    我正在尝试使用 MaterializeCSS 创建带有箭头的轮播 我正在尝试使用这个代码笔 https codepen io Paco Cervantes pen ZLxKpj取得有限的成功 我想使用普通的 javascript 而不是 j
  • HTML标题属性样式[重复]

    这个问题在这里已经有答案了 如何在不使用 javascript 或 CSS 的情况下更改以下标记中标题属性的样式 因为我将 HTML 插入到原本无法编辑的文档中的特定位置 span title This is information Thi
  • HTML:JavaScript:阻止表单提交并调用 Javascript 函数

    我想在按下表单中的提交按钮时进行 AJAX 调用 事实上我无法删除

随机推荐

  • 我可以假设 sizeof(uint8_t) = 1 吗?

    我有一个程序 对 uint8 t 数组使用动态分配 我可以安全吗 假设它的长度总是一个字节 If uint8 t存在 那么sizeof uint8 t 必须是 1 uint8 t is required宽度恰好为 8 并且没有填充位 并且C
  • 使用 browserify 填充 jQuery 插件

    您好 我正在使用 grunt browserify 任务来设置我的代码 我已经在 jQuery 中进行了填充 现在我正在尝试包含 jquery tablesorter jquery插件可以这样与browserify一起使用吗 shim jq
  • PerformSelector:withObject:afterDelay:无法从scrollViewDidZoom工作

    我觉得我应该知道这一点 但我已经被难住了好几个小时 而且我已经没有想法了 原理很简单 用户使用捏合操作来操纵滚动视图中的缩放和定位 如果他们捏捏的时间很短 那么滚动视图就会记录缩放级别和内容偏移量 所以我想我应该在scrollViewDid
  • 类的 mro 方法和 __mro__ 属性有什么区别?

    我偶然发现了这个额外的 无下划线的mro我使用时的方法 metaclass abc ABCMeta 似乎是一样的 mro 只是它返回一个列表而不是元组 这是一个随机示例 创意片段 import abc import copy class L
  • 如何在 Ruby 中临时重定向 stderr?

    我想在一个块的持续时间内临时重定向 Ruby 脚本中的 stderr 确保在块结束时将其重置为其原始值 我很难在 ruby 文档中找到如何做到这一点 在红宝石中 stderr指的是输出流目前使用的作为标准错误 而STDERR is the
  • 如何使用 OnItemClick 从列表视图中检索单击的字符串?

    我这里有一些问题 它看起来很简单 我一直在寻找它的解决方案 不幸的是 我找不到任何东西 这是我的问题 我想做的是从项目单击方法中获取列表视图中显示的字符串 这是我的列表视图 lol hi waw 当我单击 lol 时 我想获取 lol 字符
  • 容器视图控制器 - 通知父级操作

    假设我有一个自定义容器视图控制器 MainViewController 我在其中执行如下操作 void viewDidLoad super viewDidLoad HomeViewController homeVC HomeViewCont
  • C++ 保留字作为 C 结构体中的函数指针名称

    我怀疑我已经知道这个问题的答案 但我很好奇是否有专家有任何技巧 我有一个旨在成为 C 框架的 C 库 未使用不安全函数 类似的跨平台命名约定等 这工作得很好 直到我尝试在 C 项目中使用它 其中 C 命名空间 函数名称与 C 保留字冲突 在
  • 在 ListView 顶部显示新项目

    我正在使用列表来填充 ListView 用户可以将项目添加到列表中 但是 我需要将项目显示在 ListView 的顶部 如何在列表开头插入项目以便以相反顺序显示它 默认情况下列表在底部添加元素 这就是为什么您添加的所有新元素都会显示在底部
  • python: Windows 相当于 SIGALRM

    我有这个装饰器 def timed out timeout def decorate f if not hasattr signal SIGALRM return f def handler signum frame raise Timed
  • 获取 Google 访问令牌

    要在 firebase 身份验证登录后获取 Google 访问令牌 我知道我可以简单地执行以下操作 firebase auth signInWithPopup provider then function result var token
  • 信誉良好的地理 IP 定位服务 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 谁是一些信誉良好和 或稳定的地理 IP 定位服务提供商 我正在指定一个需要此功能的应用程序 每当我搜索 geo ip 时 我都会得到大量的点击 但很
  • 如果 Sql Compact 允许多个连接,为什么我会收到文件共享错误?

    Here据说Sql Server Compact最多允许256个连接 但是当我尝试打开 2 个连接时 我收到文件共享错误 我该如何解决这个问题 SqlCeConnection c1 new SqlCeConnection Data Sour
  • 如何在 Quarkus 应用程序中设置 H2 数据库控制台 url

    Spring boot 应用程序提供了一个属性来设置 H2 数据库的 Web 控制台 URL spring h2 console path h2 有没有办法在 Quarkus 应用程序中设置相同的属性 如果不是那么默认是什么 Web 控制台
  • 如何使用 Content-Encoding 读取压缩的 HTML 页面:gzip

    我请求一个发送内容编码 gzip标题 但卡住了如何阅读它 My code try URLConnection connection new URL http jquery org openConnection String html Buf
  • PHP in_array() 的性能很糟糕。搜索数组值的最快方法

    我有以下简单的代码来测试我正在创建的主键上的冲突 machine ids array for i 0 i lt 100000 i Generate machine id returns a 15 character alphanumeric
  • 如何在 Django 上引发多个 ValidationError?

    from rest framework exceptions import ValidationError def to representation self request data raise ValidationError fiel
  • Python - 一次从文件中读取 1000 行

    我查过this this and this 第三个链接似乎有答案 但它没有完成任务 我无法找到将整个文件放入主内存的解决方案 因为我将使用的文件将非常大 所以我决定使用islice如第三个链接所示 前 2 个链接无关紧要 因为它们仅使用了
  • 无法使用 Webpack 加载 font-awesome [重复]

    这个问题在这里已经有答案了 尝试使用 webpack 加载 font awesome 会出现以下错误 ERROR in font awesome fonts fontawesome webfont eot v 4 6 3 Module pa
  • 如何使用 PowerShell 解析网站的 HTML

    我正在尝试检索有关网站的一些信息 我想查找特定的标签 类 然后返回包含的文本值 innerHTML 这就是我到目前为止所拥有的 request Invoke WebRequest Uri url UseBasicParsing HTML N