2013-02-21 55 views
2

這是一個有很多文字的體育網站,我將在以後的文章中進行整理。希望使用javascript來保存一個網頁作爲文本文件

,我所遇到的唯一代碼:

<html> 
<body> 
<script language="JScript"> 
<!-- 
function open() 

{ 
    var result = string.Empty; 
    using (var webClient = new System.Net.WebClient()) 

    result = webClient.DownloadString("http://some.url"); 



    var myObject, afile; 
    myObject = new ActiveXObject("Scripting.FileSystemObject"); 
    afile = myObject.OpenTextFile("F:\\sports.txt", 8, true, 0); 
    afile.write (result); 
    afile.close(); 
} 
--> 
</script> 
Open a text stream for the file sport.txt 

<form name="myForm"> 
<input type="Button" value="Open File" onClick='open()'> 
</form> 
</body> 
</html> 

任何幫助,將不勝感激,我可以根據需要在其他語言寫了。 請指導我!

+0

可能重複[使用JavaScript保存客戶端機器上的文本文件](http://stackoverflow.com/questions/9717214/save-text-file-on-client-machine-using-javascript) – Quentin 2013-02-21 15:59:42

+0

出於安全原因,你永遠不會得到(可靠的,跨瀏覽器)訪問到用戶的文件系統。你最好的選擇是用一個文本產生一個單獨的頁面,並提供一個下載選項。 – 2013-02-21 16:00:41

+0

@Quentin - 不,這不是 – PitaJ 2013-02-21 16:01:16

回答

0

如果您想編寫自己的實用程序腳本來抓取頁面的內容並將其下載到文件中,並且您想用JavaScript編寫它,則可以使用Node。

http://nodejs.org/

如果你只需要一個命令行工具來做到這一點,使用wget

這兩個選項都在許多平臺上運行。

0

您發佈的代碼什麼都不做,因爲它不是有效的JS代碼。如果問題不清楚,答案可能不是你所要求的。

我不確定您真正想要保存的內容,整個頁面源代碼或瀏覽器呈現的可見文本。您還沒有指定在哪個環境中運行您的腳本,它是在Web瀏覽器還是WSH中?

我會發布這兩種情況(頁面源/文本)的示例代碼。我會盡我所能在JScript中至少寫一個。但是,使用VBScript編寫代碼更容易,正如您所說,這不是問題,我的第二個示例代碼將在VBS中。

將HTML源代碼(.JS):

var url = 'http://some.url'; // set your page url here 
with (new ActiveXObject("Microsoft.XmlHttp")) { 
    open('GET', url, false); 
    send(''); 
    var data = responseText; 
    with (new ActiveXObject("ADODB.Stream")) { 
     Open(); 
     Type = 2; // adTypeText 
     Charset = 'utf-8'; // specify correct encoding 
     WriteText(data); 
     SaveToFile("page.html", 2); 
     Close(); 
    } 
} 

獲取可視/渲染文本(.VBS)的

Dim url: url = "http://some.url" 'set your page url here' 
With WScript.CreateObject("InternetExplorer.Application", "IE_") 
    .Visible = False 
    .Navigate url 
    Do 
     WScript.Sleep 100 
    Loop While .ReadyState < 4 And .Busy 
    Dim data: data = .Document.Body.innerText 
    With CreateObject("ADODB.Stream") 
     .Open 
     .Type  = 2 'adTypeText' 
     .Position = 0 
     .Charset = "utf-8" 
     .WriteText data 
     .SaveToFile "output.txt", 2 
     .Close 
    End With 
    .Quit 
End With 
相關問題