我正在遍历 URL 的 CSV 文件并使用 Invoke-WebRequest 来获取与指定条件匹配的链接的 innerHTML 和 href 值,但这仅适用于某些 URL,而不适用于其他 URL,除非我添加参数 -UseBasicParsing 不t 提供我需要的属性访问和过滤功能。
一个共同点是,那些不起作用的都使用 www 子域,但其中一些仍然可以在没有这个的情况下访问,但仍然不起作用,我不确定这应该是一个问题,因为其他 www URL 确实有效
如上所述,我尝试添加允许连接的 UseBasicParsing,但这限制了我可以访问的数据。我还查看了 URLS 的 http 标头,以尝试了解差异是什么,但不确定问题是什么。
这可以正确运行并返回页面上每个链接的 innerHTML 文本和 href
$currentRequest = Invoke-WebRequest -Uri https://moz.com/learn/seo/what-
is-seo
$currentRequest | Get-Member
$currentRequest = $currentRequest.Links |
Select innerHTML, href |
WHERE innerHTML -like *SEO*
$currentRequest
使用与以下 URL 完全相同的代码,控制台只是冻结,直到脚本退出
https://www.redevolution.com/what-is-seo
当我使用工作 URL 运行脚本时,我会为每个链接获得一对值,如下所示
innerHTML : Recommended SEO Companies
href : https://moz.com/community/recommended
使用上面提到的非工作 URL,命令行只会停留在闪烁的光标处。
这只是一个示例,我还需要查询其他数据,因此很高兴了解我如何能够始终如一地运行 Invoke-WebRequest 而不会出现问题。
非常感谢!!
麦克风