2013-08-26 52 views
1

有一些网站,比如gmail.com不显示源信息(例如,你不能用鼠标右键单击,然后选择“查看源文件”)PowerShell的 - 查看网站源信息

所以我想读将文档源文件导入到文件中,以便我可以看到不同类型的元素(我希望能够最终将证书和其他数据传递到网站),但是我遇到了困难。

下面是代码:

$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的空白,帮助!

+0

您是否考虑过简单地运行Fiddler或类似的工具? – EricLaw

+0

你的意思是Fiddler,http://fiddler2.com/? – Glowie

+0

当然可以。 – EricLaw

回答

1

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

如果您在使用PowerShell v3,则可以使用Invoke-WebRequest cmdlet来直接查询Web服务器如下:

$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 
+0

该解决方案有效。当我输出$ result到控制台时,我可以清楚地读取,但是当我输出到.txt文件时,一切都变得混乱。什么文件类型可以将$结果传递给? – Glowie

+0

“混乱”是什么意思?如果输出到控制台或文件,然后读取文件,两者都是相同的......因为源代码是相同的。 –

+0

@ Graham Gold:哦,我的意思是输出不是整齐地组织成行和制表符分隔,因为它是通过$输入到控制台的。当我将$结果输出到.txt文件时,所有内容都聚拢在一起,而不是由空格和制表符分隔 – Glowie

2

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

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

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

从Powershell获取源代码的途径只会越来越复杂。