【问题标题】:Powershell - View Website Source InformationPowershell - 查看网站源信息
【发布时间】:2013-08-26 18:06:38
【问题描述】:

有些网站,例如 gmail.com 不显示源信息(即您不能右键单击并选择“查看源”)

所以我试图将文档源读入一个文件,这样我就可以看到不同类型的元素(我希望最终能够将凭据和其他数据传递到网站中),但我遇到了困难。

代码如下:

$ie = new-object -com "InternetExplorer.Application"
$ie.navigate("http://www.gmail.com")
$ie.visible=$true
$doc = $ie.document
Add-Content C:\output.txt $doc.all

C:\output.txt 为空,求助!

【问题讨论】:

  • 您是否考虑过简单地运行 Fiddler 或类似工具?
  • 你是说提琴手,fiddler2.com ?

标签: internet-explorer powershell


【解决方案1】:

使用InternetExplorer.Application 的问题是您必须处理应用程序行为,例如,如果我运行您的代码,我也会得到一个空文件,因为在访问文档属性后加载的页面。

如果您使用的是Powershell v3,您可以使用Invoke-WebRequest cmdlet 直接查询网络服务器,如下所示:

$webreq = Invoke-WebRequest http://www.gmail.com
$webreq.Content |Out-File C:\temp\output.txt

在 powershell v2 中,您可以使用 System.Net.Webrequest .NET 类,如下所示:

$req = [System.Net.WebRequest]::Create("http://www.gmail.com/")
$resp = $req.GetResponse()
$reqstream = $resp.GetResponseStream()
$stream = new-object System.IO.StreamReader $reqstream
$result = $stream.ReadToEnd()
$result | out-file c:\temp\output2.txt

【讨论】:

  • 此解决方案有效。当我将 $result 输出到控制台时,我可以清楚地阅读,但是当我输出到 .txt 文件时,一切都变得混乱了。我可以将 $result 传输到什么文件类型?
  • “混乱”是什么意思?如果输出到控制台或文件然后读取文件,两者都是相同的......正如您所期望的那样,因为源是相同的。
  • @Graham Gold:哦,我的意思是输出没有整齐地组织成行和制表符分隔,就像 $result 通过管道传输到控制台时一样。当我将 $results 输出到 .txt 文件中时,所有内容都被捆绑在一起,而不是用空格和制表符分隔
  • 我猜你是用记事本打开的?它在处理回车/换行方面并不是最好的。试试写字板或记事本++
【解决方案2】:

您可以查看任何网站的来源。我可以在 Chrome 上看到 Gmail 的源代码,使用右键单击的正常方法 -> 查看页面源代码。

您也可以打开开发者工具 -> 元素查看源代码。

在 Chrome 中,您甚至可以使用view-source:https://mail.google.com/mail/u/0/?shva=1#inbox 之类的 URL 来查看源代码。

从Powershell获取源码只会越来越复杂。

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 2012-02-21
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    相关资源
    最近更新 更多