2

这是一个有很多文字的体育网站,我稍后会根据兴趣对文字进行排序。

我遇到的唯一代码是:

<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>

任何帮助将不胜感激,如果需要,我也可以用其他语言写作。请指导我!!

4

2 回答 2

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
于 2013-03-02T18:37:20.513 回答
0

如果您想编写自己的实用程序脚本来获取页面内容并将其下载到文件中,并且您想用 JavaScript 编写它,您可以使用 Node.js。

http://nodejs.org/

如果您只需要一个命令行工具来执行此操作,请使用wget

这两个选项都可以在许多平台上运行。

于 2013-02-21T17:23:28.990 回答