我正在使用VBA的正则表达式来接收网页上的电子邮件,所有这些都是非常不同的格式。由于格式上存在这些差异,我很难访问整个页面文本。
目前我的方法只是使用
Dim retStr as String
retStr = ie.document.body.innerText
其中ie
来自Set ie = CreateObject("InternetExplorer.Application")
看起来很简单,但在this one等某些页面上并未返回所有页面文本。通过"所有页面文本" ,我的意思是 ctrl + f 会作用于任何事情。在链接页面中,每个步骤的文本都是'似乎没有回来。我想不同的网页之间会有变化,特别是如果它们没有用HTML格式化。
在网页上按 ctrl + a 会返回我喜欢的文字,是否有某种方法可以在不使用sendkeys
的情况下访问此文字?
答案 0 :(得分:2)
它对我来说很好。我有一种感觉,你正在将它写入Excel单元格,因此文本被截断。
我把它写到一个文本文件中,我得到了完整的文本。
Sub Sample()
Dim ie As Object
Dim retStr As String
Set ie = CreateObject("internetexplorer.application")
With ie
.Navigate "http://www.wikihow.com/Choose-an-Email-Address"
.Visible = True
End With
Do While ie.readystate <> 4: Wait 5: Loop
DoEvents
retStr = ie.document.body.innerText
'~> Write the above to a text file
Dim filesize As Integer
Dim FlName As String
'~~> Change this to the relevant path
FlName = "C:\Users\Siddharth\Desktop\Sample.Txt"
filesize = FreeFile()
Open FlName For Output As #filesize
Print #filesize, retStr
Close #filesize
End Sub
Private Sub Wait(ByVal nSec As Long)
nSec = nSec + Timer
While nSec > Timer
DoEvents
Wend
End Sub