`

JAVA调用VB6.0爬取网页

阅读更多

用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 (1).doc

    C# 如何调用 VB6.0 编写的 dll 在本文中,我们将讨论如何在 C# 项目中调用 VB6.0 编写的 DLL。这是一个常见的问题,因为很多遗留系统都是使用 VB6.0 编写的,而新的系统则使用 C#。要调用 VB6.0 编写的 DLL,我们...

    vb6.0调用webservice详解

    在VB6.0中调用Web Service,可以将传统的桌面应用与网络服务无缝集成,实现更丰富的功能。 首先,调用Web Service的基本步骤包括以下几点: 1. **获取WSDL文件**:Web Service通常通过一个名为WSDL(Web Services ...

    调用浏览器程序(VB6.0源代码)

    在VB6.0环境下,开发人员经常需要实现与系统浏览器的交互,比如自动打开一个指定的网页。这个项目就是关于如何使用Visual Basic 6.0(VB6.0)源代码来调用浏览器并加载URL的功能。下面我们将深入探讨这个知识点。 ...

    C++调用vb6.0制作的Activex DLL

    本主题将深入探讨如何在Visual Studio 2008(VS2008)环境下,使用C++代码调用由VB6.0编写的ActiveX DLL。ActiveX DLL是一种组件,它允许不同编程语言之间的交互,为开发者提供了极大的便利。 首先,我们要理解...

    VB 6.0 帮助文档_MSDN

    VB 6.0帮助文档_MSDN是微软开发者网络(MSDN)为程序员提供的官方技术文档,它包含了关于VB 6.0的所有关键知识点,包括语言语法、控件使用、API调用、事件处理以及错误处理等。 1. **基础概念**:VB 6.0基于Basic...

    VB6.0的运行库.zip

    VB6.0运行库是微软Visual Basic 6.0编程环境的一个重要组成部分,它包含了运行由VB6.0编译的程序所必需的动态链接库(DLL)和其他系统组件。这些组件使得计算机能够理解并执行VB6.0编写的代码,即使目标机器上没有...

    VB6.0 实现WebSocket 例子.7z

    VB6.0,即Visual Basic 6.0,虽然相对较老,但仍被许多开发者用于编写桌面应用程序。然而,VB6.0本身并不直接支持WebSocket,因此需要借助第三方库或者自定义实现来达成目标。 要使用VB6.0实现WebSocket通信,通常...

    调用浏览器程序(VB6.0源代码)调用浏览器

    在VB6.0环境下,开发人员经常需要实现一个功能,即通过编程方式调用系统默认的浏览器来打开指定的网页。这个过程涉及到Windows API(应用程序接口)的使用,特别是使用`ShellExecute`函数来启动外部应用程序。下面...

    MODBUS VB读写寄存器_Vb6.0modbus_

    VB6.0(Visual Basic 6.0)是微软推出的一种面向对象的编程语言,常用于开发Windows应用程序。在这个项目中,“MODBUS VB读写寄存器”意味着我们将探讨如何在VB6.0环境下实现MODBUS协议,特别是针对寄存器的读写操作...

    vb6.0可用的ico图标

    VB6.0,全称Visual Basic 6.0,是微软公司推出的一款经典的可视化编程工具,主要用于开发Windows桌面应用程序。在VB6.0中,图标是界面设计的关键组成部分,它们可以提升应用的用户体验和美观度。VB6.0支持直接在工程...

    VB 6.0 帮助文档(中文)

    VB 6.0,全称Visual Basic 6.0,是微软公司开发的一款可视化的编程环境,主要用于构建Windows应用程序。这个“VB 6.0 帮助文档(中文)”是一个极其宝贵的资源,它详细解释了VB 6.0中的各种控件、函数以及编程概念,...

    VB6.0应用编程150例源代码.rar

    8. **API调用**:VB6.0还可以调用Windows API函数,以实现更底层的功能,例如系统级操作、硬件控制等。一些实例可能涉及API调用来增强程序的功能。 9. **错误处理**:VB6.0使用On Error语句进行错误处理,可以设置...

    vb6.0编写的Modus/TCP主站程序

    标题中的“vb6.0编写的Modus/TCP主站程序”指的是使用Visual Basic 6.0(VB6.0)编程语言开发的Modbus/TCP协议的主站应用程序。Modbus是一种广泛应用的通信协议,尤其在工业自动化领域,它允许不同设备之间交换数据...

    VB6.0调用C# Dll解决方法

    本文将详细解释如何使用VB6.0调用由C#编写的DLL动态链接库,以及在这一过程中涉及到的关键步骤和知识点。 首先,我们要了解VB6.0和C#之间的差异。VB6.0是基于COM(Component Object Model)技术的,而C#是.NET框架...

    编程用软件VISUAL BASIC AND SP6(VB6.0)+ CodeSMART2013

    Visual Basic 6.0(简称VB6.0)是微软公司推出的一款经典编程环境,尤其适用于初学者和专业开发者,它以其直观易用的界面和强大的功能在编程界占据了重要地位。VB6.0是基于事件驱动的编程模型,支持对象导向编程,让...

    VB6.0调用QRMAKER生成二维码例子,含文档(支持中文)

    总的来说,VB6.0调用QRMAKER生成二维码是一个直观且实用的过程,结合文档学习,即使是初学者也能很快掌握。通过这个工具,你可以将各种信息编码成二维码,方便在移动设备上扫描读取,拓宽了VB6.0应用程序的数据交互...

    vb 6.0 QRcode条码生成控件

    这个控件通常是一个动态链接库(DLL)或ActiveX组件,它可以被VB 6.0应用程序调用,实现二维码的生成和显示。根据描述,提供的压缩包可能包含了这样的控件,名为"QRcode条码生成控件"。安装和使用这个控件的过程如下...

    VB6.0源码上万个下载

    VB6.0(Visual Basic 6.0)是微软公司发布的一款可视化的编程环境,主要用于开发Windows应用程序。这款编程工具以其简单易学、强大的Windows API支持以及丰富的控件库而广受欢迎,尤其适合初学者入门。"VB6.0源码...

Global site tag (gtag.js) - Google Analytics