html - 解析 HTML,多个类
问题描述
我想创建一个 PowerShell 脚本来从网站获取信息。我试图找到该网站的以下 HTML 标记的第一次出现:
<div class="dDoNo gsrt"><span data-dobid="hdw">Text I want to find</span></div>
我使用以下 PowerShell 代码没有成功,没有输出:
$WebResponse = Invoke-WebRequest "https://www.google.co.in/search?hl=en&q=define+Text"
($WebResponse.ParsedHtml.GetElementsByTagName(‘div’) | Where {
$_.ClassName -eq ‘dDoNo’
}).InnerText
更准确地说:我试图通过从谷歌抓取 HTML 来获取单词的定义,并使用这个类作为基础: googleDictionaryAPI 类
解决方案
感谢@Ansgar 为我指出正确的解决方案。
主要问题是我从 Invoke-WebRequest 得到的响应与我从浏览器得到的响应不同。解决方案是在调用请求时定义一个 UserAgent:
$WebResponse = (Invoke-WebRequest -Uri "https://www.google.co.in/search?hl=en&q=define+Text" -UserAgent "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36")
($WebResponse.ParsedHtml.DocumentElement.GetElementsByTagName('div') | Where {
$_.ClassName -match '\bdDoNo\b'
}).InnerText
推荐阅读
- html - 如何更改垫分隔器的颜色?
- python - Django 模型约束 - 用户的所有行的总和小于一个常数
- asp.net - 从另一个域获取发布的数据时,ASP.NET 网络表单丢失会话
- intellij-idea - Grep 控制台选项卡从 IntelliJ 调试区域消失
- c# - 是否有类似 Web 驱动程序的东西,但适用于 Android 应用程序?
- python - 删除/替换 boto3 中的存储桶
- python - Altair - 无法获取折线图中某一层的工具提示
- python - 当我运行我的代码时,我的 pygame 代码冻结了
- grails - Grails 3 与 Grails 4 - 日期和时间戳
- db2 - GROUP BY HAVING CLAUSE on 5 Columns DB2