powershell - 在 PowerShell 中,有没有办法在不使用浏览器的情况下获取 URL 的文本?
问题描述
站点本身必须登录——我使用 COM 对象作为“幽灵用户”登录。有一个带有表格的页面,我可以通过发送击键来复制该表格,收集保存到剪贴板/文本文件的 urls/ids/其他信息列表。使用 com 对象,我可以打开该文件中的每个 url 元素(只要我已登录)并获取文档请求中的页面文本,但只有在页面加载之后(太快返回部分页)。
这在 15,000 个页面/url 上非常慢,我希望提高速度而不必渲染每个 url(我什至必须将每个 url 放入一个循环中进行检查,以防加载失败)
有没有办法从网页的 URL 中获取各种 label:LabelValue 属性而不加载它?编辑*我有代码:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ie = New-Object -ComObject 'internetExplorer.Application'
$user = "me"; $pw = "pw"
$ie.Visible = $true
$ie.Navigate("https://Loginscreen.com")
$userField = $ie.document.getElementByID('login')
$usernamefield.value = "$user"
$passwordfield = $ie.document.getElementByID('password')
$passwordfield.value = "$pw"
$Link = $ie.document.getElementByID('SubmitLogin')
$Link.click()
$ieProc = Get-Process | ? { $_.MainWindowHandle -eq $ie.HWND }
[Microsoft.VisualBasic.Interaction]::AppActivate($ieProc.Id)
$fc = gc "C:\TempProject.txt"
foreach ($f in $fc)
{
$url = $f.split("`t")[-1]
$HTML = Invoke-WebRequest $url
$body = $HTML.ParsedHTML.body.innerText
$body
}
但是,它似乎返回了有关登录页面的一般信息......我在网页上找不到任何我想要的任何内容的引用——HTML 标记信息或文本本身。
解决方案
如果您的意思是“有没有办法在不使用浏览器的情况下获取 URL 的文本?” 答案是压倒性的,响亮的是!尝试 Invoke-WebRequest 并查看 Content 属性是否具有您要查找的内容。从文本中抓取 HTML 仍然是您需要手动执行的操作,或者使用不同的包从水果中抓取多汁的部分。
推荐阅读
- php - 如何在 Magento 2 的“订单和账户信息”部分显示订单总重量?
- ionic3 - 看起来这个项目中没有安装 @ionic/app-scripts
- sql - 在 SQL BETWEEN v1 AND v2 中选择多个范围
- excel - EXCEL 2016。如果 Sheet1 中的多个单元格与 Sheet2 中的多个单元格匹配,则突出显示行
- tsql - 合并 SSRS 上的行
- c++ - 在 pclose() 之前从 popen()ed FILE* 读取的输出是否完整?
- javascript - Javascript Date 以两种不同的方式表现
- android - USB 条码扫描器发送的值
- android - Android中PagedListView从内容左侧到右侧的滚动条
- ruby-on-rails - 应用程序找不到路由