在PowerShell中,是否有一种无需使用浏览器即可获取URL文本的方法?

时间:2018-11-28 15:49:02

标签: powershell internet-explorer

该站点本身必须登录-我使用COM对象以“ ghost用户”身份登录。我可以通过发送击键,收集URL / ID /其他信息的列表来复制包含表格的页面,该列表保存到剪贴板/文本文件中。使用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标记信息或文本本身。

1 个答案:

答案 0 :(得分:1)

如果您的意思是“是否有一种无需使用浏览器即可获取URL文本的方法?”答案是压倒性的,是肯定的!尝试Invoke-WebRequest并查看Content属性是否具有您想要的内容。仍然需要手动从文本中提取HTML或使用其他程序包从水果中提取多汁的片段。