用VB6.0解决网页获取问题,在一些情况下可以省点事。
比如百度链接现在直接访问都302了,VB调用浏览器控件,可以绕开此类问题。
对于怼着一个网站爬,中间必须休眠的应用,干脆上VB。
核心代码如下。
'全局变量 Public counter As Integer Private Sub Form_Load() '获取外部传入的参数 Dim para If Command <> "" Then para = Command End If WebBrowser1.Silent = True 'WebBrowser1.Navigate "http://www.baidu.com/link?url=-8BvUVFXO52WMTvdy10cCekVvQ1nLMUtwVlPh02aEhMM3rTKN2JiAQcNYlYRmLdSdU7xpI9V9AuVPlBKbr7PqK" 'WebBrowser1.Navigate url 'MsgBox para 'para = "1000丨丨丨http://www.baidu.com/link?url=tGeuyVVTLkLc_pbME3n_p8LMicqdmPWKuza0h3PQT1D7SMZLYkj_6Pxn-jBCw57jRcVRUBNrg5q4RzYMvIx8BAEEKHOGGMLTGYzGkdI_NhC" '字符串截取测试 Dim index index = InStr(1, para, "丨丨丨") 'MsgBox index 'Dim counter '截取左侧字符串 counter = Left(para, index - 1) 'MsgBox counter Dim url '截取右侧字符串 url = Right(para, Len(para) - index - 2) 'MsgBox url ' WebBrowser1.Navigate url End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, url As Variant) If (pDisp Is WebBrowser1.Object) Then 'MsgBox (WebBrowser1.Document) 'Dim HTML As HTMLDocument Dim strData As String 'strData = WebBrowser1.Document.body.innerText strData = WebBrowser1.Document.body.innerHtml 'Set HTML = WebBrowser1.Document 'strData = HTML.documentElement.innerHTML 'MsgBox (strData) Text1.Text = strData '写文件 Dim nHandle As Integer, fName As String 'fName = "d:\test.html" fName = "d:\book\w" & counter & ".html" nHandle = FreeFile Open fName For Output As #nHandle Print #nHandle, strData Close nHandle '退出程序 Unload Me End If End Sub Private Sub Form_Resize() WebBrowser1.Width = Me.ScaleWidth WebBrowser1.Height = Me.ScaleHeight End Sub
对于VB生成的EXE,用JAVA调用
public class TestExe { public static void main(String[] args) throws IOException, InterruptedException { String link = "http://www.baidu.com/link?url=tGeuyVVTLkLc_pbME3n_p8LMicqdmPWKuza0h3PQT1D7SMZLYkj_6Pxn-jBCw57jRcVRUBNrg5q4RzYMvIx8BAEEKHOGGMLTGYzGkdI_NhC"; int counter = 0; callExe(link, counter); } public static void callExe(String link, int counter) { Process process = null; String[] cmds = { "D:\\软件\\VisualBasic6.0-SCqy\\Project1\\工程1.exe", counter + "丨丨丨" + link }; // "http://www.baidu.com/link?url=tGeuyVVTLkLc_pbME3n_p8LMicqdmPWKuza0h3PQT1D7SMZLYkj_6Pxn-jBCw57jRcVRUBNrg5q4RzYMvIx8BAEEKHOGGMLTGYzGkdI_NhC" // }; try { process = new ProcessBuilder(cmds).start(); System.out.println(process.isAlive()); // true int exitVal = process.waitFor(); System.out.println(exitVal); // 0 System.out.println(process.isAlive()); // false } catch (Exception e) { System.out.println(e.getMessage()); } } }
调用EXE后阻塞,EXE执行完之后之后退出程序,JAVA继续执行。
相关推荐
C# 如何调用VB6.0编写的dll.doc
C# 如何调用VB6.0编写的dll (1).doc
网上写vb6.0调用webservice的都写得比较简单, 这个结合实例作了较详细介绍
vs2008 环境下C++代码调用vb6.0生成的Activex dll。
VB6.0调用 DLL版ZIP压缩文件夹目录和解压ZIP文件,网上很多源码不好用,所以就自己做了一个。原始代码是VC++的用VS2019编译了一个,DLL封装了下。调用很简单 '调用方法如下: 'CreateZipFileA "C:\123", "C:\123.zip...
VB6.0调用C# Dll解决方法 用C#实现dll 用cmd命令生成tlb文件 VB引用tlb文件 进行引用。
调用浏览器程序(VB6.0源代码)调用浏览器,粘贴入网址,点击浏览即可打开网页。VB6.0源代码
调用浏览器程序(VB6.0源代码) 调用浏览器,粘贴入网址,点击浏览即可打开网页。VB6.0源代码
在VB6.0中调用SQL Server的存储过程.pdf
VS2010 调用 VB6.0 activeX DLL源码 有四种调用方式 均通过验证, 同时附有VS2010成功引用VB6的说明
VB6.0 MD5加密算法 支持中文(调用Window API计算) 调用MD5函数即可。
在VB6.0中调用和操作MATLAB.pdf
VB6.0源代码编写的调用压缩软件rar,压缩和解压按路径指定的picture图片文件App.Path & "\pic.bmp
VB调用QRMAKER.OCX生成二维码的例子,支持中文,包含文档,一看就懂。 解压后在该目录下运行命令行注册组件Regsvr32.exe,输入命令Regsvr32 Qrmaker.ocx。
吸取前辈的经验,自己写了个VB6.0 DLL文件的编译链接插件,按照以下方法,可以在VB 6.0中直接编译生成带外部输出的DLL文件。 1. 把MakeDLL.dll和MakeDLL.exe两个文件复制入VB所在目录,例如 "C:\Program Files...
VB6.0 调用系统API函数。控制显示器的关闭
递归函数用两种方法说明,子函数调用。VB6.0源代码编写
vb6.0 语音朗读实例,已将原作者的英文注释经百度翻译成中文了,帮助需要的朋友.但仍需以英文为准