`

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完整版安装包

    6. **ActiveX技术**:VB6.0利用ActiveX技术,可以创建和使用组件,这些组件可以被其他VB应用程序或者Web页面调用,增强了软件的可扩展性。 7. **MFC(Microsoft Foundation Classes)**:虽然VB6.0不是C++环境,但...

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

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

    VB 6.0 帮助文档(中文)

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

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

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

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

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

    MODBUS VB读写寄存器_Vb6.0modbus_

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

    vb 6.0 QRcode条码生成控件

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

    VB6.0源码上万个下载

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

    USB扫描枪源VB6.0代码

    首先,VB6.0中的USB扫描枪连接主要涉及到WinAPI函数调用,如`CreateFile`、`DeviceIoControl`等,用于建立与扫描枪的通信通道。这些API函数允许开发者直接与硬件设备交互,打开、关闭以及控制USB设备。开发者还需要...

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

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

    VB6.0调用控件制作播放器的源码.rar

    本压缩包中的"VB6.0调用控件制作播放器的源码.rar"提供了这样一种实例,帮助开发者了解如何利用Visual Basic 6.0的内置组件和第三方控件来创建一个基本的媒体播放器。 首先,让我们关注一下这个播放器支持的文件...

    MSDN FOR VB 6.0

    6. **API调用**:了解如何使用WinAPI函数来扩展VB 6.0的功能,例如系统级操作或硬件交互。 7. **数据库访问**:ADO(ActiveX Data Objects)的使用,包括连接数据库、执行SQL语句、处理结果集等。 8. **错误处理和...

    VB6.0 简单的CAD绘图程序

    在VB6.0中实现CAD功能,主要是通过编程接口(API)调用操作系统底层的图形绘制函数,或者使用专门的图形库来实现。开发者可以通过编写代码来控制线条的绘制、图形的旋转、缩放、复制等操作,从而创建出具有CAD功能的...

    VB6.0与S7200编程口(PPI协议)通讯

    3. **VB6.0的API调用**:由于VB6.0本身不直接支持PPI协议,我们通常需要借助API函数(如WinAPI或第三方库)来发送和接收串行数据。例如,使用`WriteFile`和`ReadFile` API函数进行串口通信。 4. **帧结构**:PPI...

    VB6.0 MODBUSTCP 工程应用.rar

    《VB6.0 MODBUSTCP 工程应用详解》 在现代工业自动化领域,通信协议扮演着至关重要的角色,其中MODBUS TCP协议因其简单、高效而被广泛应用。本篇文章将深入探讨如何利用Visual Basic 6.0(简称VB6.0)进行MODBUSTCP...

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

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

Global site tag (gtag.js) - Google Analytics