如何使用 VBScript 在网站上搜索文本?
How do I Search for text on a website using VBScript?
我想创建一个 VBScript
来查找网页上给定的单词组合。
如果脚本找到相同的文本,请键入:hits -with echo.
我找到了一个解决方案 here,这在一定程度上是我想要的,但到目前为止我还无法转换它以使脚本执行我想要的操作。
你能帮我看看如何让它工作吗?或者有更好的解决方案吗?
我是VbScripts
的初学者,我想在这方面做,因为已经有一个系统用vbscript完成了,我想合并这个功能。
感谢您的帮助!
您可以尝试类似的方法:使用 InternetExplorer.Application
对象
Option Explicit
Call Find("Whosebug","https://whosebug.com")
Call Find("google","https://www.google.com")
Call Find("yahoo","https://www.yahoo.com")
'-----------------------------------------------------------------------------------------------
Function Find(StrString,URL)
Dim Title,ie,objRegex,Matches,Data
Title = "Find a String in a webpage"
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate(URL)
ie.Visible = false 'run ie in the background
DO WHILE ie.busy
wscript.sleep 100
LOOP
Data = ie.document.documentElement.innertext
ie.quit()
Set ie = Nothing
Set objRegex = new RegExp
objRegex.Pattern = StrString
objRegex.Global = True
objRegex.IgnoreCase = True
Set Matches = objRegex.Execute(Data)
If Matches.Count > 0 Then
MsgBox "We found this word : " & qq(StrString) &" : "& Matches.Count & " times "& vbCrLf &_
"in " & qq(URL),vbInformation,Title
End If
End Function
'-----------------------------------------------------------------------------------------------
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function
'-----------------------------------------------------------------------------------------------
或使用 Microsoft.XMLHTTP
对象:
Option Explicit
Call Find("Whosebug","https://whosebug.com")
Call Find("google","https://www.google.com")
Call Find("Hackoo","https://pastebin.com/u/hackoo")
'-----------------------------------------------------------------------------------------------
Function Find(StrString,URL)
Dim Title,HTTP_Request,objRegex,Matches,Data
Title = "Find a String in a webpage"
Set HTTP_Request = CreateObject("Microsoft.XMLHTTP")
HTTP_Request.Open "GET", URL, False
HTTP_Request.send()
Data = HTTP_Request.responseText
Set objRegex = new RegExp
objRegex.Pattern = StrString
objRegex.Global = True
objRegex.IgnoreCase = True
Set Matches = objRegex.Execute(Data)
If Matches.Count > 0 Then
MsgBox "We found this word : " & qq(StrString) &" : "& Matches.Count & " times "& vbCrLf &_
"in " & qq(URL),vbInformation,Title
End If
End Function
'-----------------------------------------------------------------------------------------------
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function
'-----------------------------------------------------------------------------------------------
我想创建一个 VBScript
来查找网页上给定的单词组合。
如果脚本找到相同的文本,请键入:hits -with echo.
我找到了一个解决方案 here,这在一定程度上是我想要的,但到目前为止我还无法转换它以使脚本执行我想要的操作。
你能帮我看看如何让它工作吗?或者有更好的解决方案吗?
我是VbScripts
的初学者,我想在这方面做,因为已经有一个系统用vbscript完成了,我想合并这个功能。
感谢您的帮助!
您可以尝试类似的方法:使用 InternetExplorer.Application
对象
Option Explicit
Call Find("Whosebug","https://whosebug.com")
Call Find("google","https://www.google.com")
Call Find("yahoo","https://www.yahoo.com")
'-----------------------------------------------------------------------------------------------
Function Find(StrString,URL)
Dim Title,ie,objRegex,Matches,Data
Title = "Find a String in a webpage"
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate(URL)
ie.Visible = false 'run ie in the background
DO WHILE ie.busy
wscript.sleep 100
LOOP
Data = ie.document.documentElement.innertext
ie.quit()
Set ie = Nothing
Set objRegex = new RegExp
objRegex.Pattern = StrString
objRegex.Global = True
objRegex.IgnoreCase = True
Set Matches = objRegex.Execute(Data)
If Matches.Count > 0 Then
MsgBox "We found this word : " & qq(StrString) &" : "& Matches.Count & " times "& vbCrLf &_
"in " & qq(URL),vbInformation,Title
End If
End Function
'-----------------------------------------------------------------------------------------------
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function
'-----------------------------------------------------------------------------------------------
或使用 Microsoft.XMLHTTP
对象:
Option Explicit
Call Find("Whosebug","https://whosebug.com")
Call Find("google","https://www.google.com")
Call Find("Hackoo","https://pastebin.com/u/hackoo")
'-----------------------------------------------------------------------------------------------
Function Find(StrString,URL)
Dim Title,HTTP_Request,objRegex,Matches,Data
Title = "Find a String in a webpage"
Set HTTP_Request = CreateObject("Microsoft.XMLHTTP")
HTTP_Request.Open "GET", URL, False
HTTP_Request.send()
Data = HTTP_Request.responseText
Set objRegex = new RegExp
objRegex.Pattern = StrString
objRegex.Global = True
objRegex.IgnoreCase = True
Set Matches = objRegex.Execute(Data)
If Matches.Count > 0 Then
MsgBox "We found this word : " & qq(StrString) &" : "& Matches.Count & " times "& vbCrLf &_
"in " & qq(URL),vbInformation,Title
End If
End Function
'-----------------------------------------------------------------------------------------------
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function
'-----------------------------------------------------------------------------------------------