2

我正在自动提取网页并将内容写入文本(HTML)文件。

为此,我设置了一个像这样的文件系统对象

Dim myHTMLfilepath As String
myHTMLfilepath = "C:\temp\MyFile.html"

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim myHTMLFile As Object
Set myHTMLFile = fso.createtextfile(myHTMLfilepath)

当我尝试将提取的内容写入文件时,有时会收到错误 5(无效参数)。这是代码:

myHTMLFile.writeline objIE.document.getElementsByClassName("cool-box")(0).innerHTML

当 innerHTML 的长度在 25800 和 28000 之间时它会中断(我还没有计算出确切的限制)。

有谁知道是否可以增加 WriteLine 限制或建议以不同的方式执行此操作?

4

1 回答 1

0

假设.innerHTML可以成功读入字符串(拆分读/写以找出),您应该能够使用 anADODB.Stream将其写入文件。WriteLine旨在将单行文本写入文件,而不是整个文档。

Dim contents As String
contents = objIE.document.getElementsByClassName("cool-box")(0).innerHTML

With CreateObject("ADODB.Stream")
    .Open
    .Type = 1
    .Write contents
    .SaveToFile myHTMLfilepath, 2
    .Close
End With
于 2019-08-20T14:57:41.110 回答