vb.net向webbrowser执行javascript代码进行翻页,如何读翻页后的数据
使用webbrowser控件显示了网页,打算从网页中读取一些数据,这些数据在网页中是分页的,现在已经实现了读取当前页的数据,读取当前页面的代码和翻页的代码分别运行是没有问...
使用webbrowser控件显示了网页,打算从网页中读取一些数据,这些数据在网页中是分页的,现在已经实现了读取当前页的数据,读取当前页面的代码和翻页的代码分别运行是没有问题的。
但是调用网页中的javascript进行翻页,再读取下一页数据的时候出现问题。
For i As Integer = 0 To 2
ChangePage()
GetDataFromWeb()
WriteDataToExcel()
Next
读到的数据都是第一页的,当程序运行完后,会直接跳转到要读取的最后一个页面
请问应该怎么处理?
Private Sub ChangePage()'翻页的代码
Dim cmd As String = "javascript:Instance('mz_" + queryNum.ToString + "').toPage(" + pageNum.ToString + ")"
wbroMap.Navigate(cmd)
pageNum += 1
End Sub
Private Sub GetDataFromWeb()'读取数据的代码
For j As Integer = 0 To 9
Dim divid As String = "no_" + j.ToString
Dim strdata As String = wbroMap.Document.GetElementById(divid).InnerText
Dim arrGetdata = Split(strdata, Chr(13))
arrData(j, 0) = arrGetdata(0)
arrData(j, 1) = Split(arrGetdata(1), ":")(1)
If arrGetdata.Length = 4 Then
arrData(j, 2) = Split(arrGetdata(2), ":")(1)
arrData(j, 3) = Split(Mid(arrGetdata(3), 5), ",")(0)
arrData(j, 4) = Split(Mid(arrGetdata(3), 4), ",")(1)
ElseIf arrGetdata.Length = 3 Then
arrData(j, 2) = "无数据"
arrData(j, 3) = Split(Mid(arrGetdata(2), 5), ",")(0)
arrData(j, 4) = Split(Mid(arrGetdata(2), 4), ",")(1)
End If
Next
End Sub
Private Sub WriteDataToExcel()'把数据写入Excel
For i As Integer = 0 To arrData.GetLength(0) - 1
For j As Integer = 0 To arrData.GetLength(1) - 1
xapp.Cells(writingPage * 10 + i + 2, j + 1).value = arrData(i, j)
Next
Next
writingPage += 1
End Sub 展开
但是调用网页中的javascript进行翻页,再读取下一页数据的时候出现问题。
For i As Integer = 0 To 2
ChangePage()
GetDataFromWeb()
WriteDataToExcel()
Next
读到的数据都是第一页的,当程序运行完后,会直接跳转到要读取的最后一个页面
请问应该怎么处理?
Private Sub ChangePage()'翻页的代码
Dim cmd As String = "javascript:Instance('mz_" + queryNum.ToString + "').toPage(" + pageNum.ToString + ")"
wbroMap.Navigate(cmd)
pageNum += 1
End Sub
Private Sub GetDataFromWeb()'读取数据的代码
For j As Integer = 0 To 9
Dim divid As String = "no_" + j.ToString
Dim strdata As String = wbroMap.Document.GetElementById(divid).InnerText
Dim arrGetdata = Split(strdata, Chr(13))
arrData(j, 0) = arrGetdata(0)
arrData(j, 1) = Split(arrGetdata(1), ":")(1)
If arrGetdata.Length = 4 Then
arrData(j, 2) = Split(arrGetdata(2), ":")(1)
arrData(j, 3) = Split(Mid(arrGetdata(3), 5), ",")(0)
arrData(j, 4) = Split(Mid(arrGetdata(3), 4), ",")(1)
ElseIf arrGetdata.Length = 3 Then
arrData(j, 2) = "无数据"
arrData(j, 3) = Split(Mid(arrGetdata(2), 5), ",")(0)
arrData(j, 4) = Split(Mid(arrGetdata(2), 4), ",")(1)
End If
Next
End Sub
Private Sub WriteDataToExcel()'把数据写入Excel
For i As Integer = 0 To arrData.GetLength(0) - 1
For j As Integer = 0 To arrData.GetLength(1) - 1
xapp.Cells(writingPage * 10 + i + 2, j + 1).value = arrData(i, j)
Next
Next
writingPage += 1
End Sub 展开
展开全部
不想用点击,直接执行,那么你肯定就不能用onclick事件了。
在网页中JS函数自动执行常用三种方法
在HTML中的Head区域中,有如下函数:
<SCRIPT
LANGUAGE="JavaScript">
functionn
MyAutoRun()
{
//以下是您的函数的代码,请自行修改先!
alert("函数自动执行哦!");
}
</SCRIPT>
下面,我们就针对上面的函数,让其在网页载入的时候自动运行!
①第一种方法
将如上代码改为:
<SCRIPT
LANGUAGE="JavaScript">
functionn
MyAutoRun()
{
//以下是您的函数的代码,请自行修改先!
alert("函数自动执行哦!");
}
window.onload=MyAutoRun();
//仅需要加这一句
</SCRIPT>
②第二种方法
修改网页的Body为:
<body onLoad="MyAutoRun();">
或者改为:
<body onLoad="javascript:MyAutoRun();">
③第三种方法
使用JS定时器来间断性的执行函数:
setTimeout("MyAutoRun()",1000); //隔1000毫秒就执行一次MyAutoRun()函数
实现方法,将最上面的那JS函数,改为:
<SCRIPT
LANGUAGE="JavaScript">
functionn
MyAutoRun()
{
//以下是您的函数的代码,请自行修改先!
alert("函数自动执行哦!");
}
setTimeout("MyAutoRun()",1000);
//这样就行拉
</SCRIPT>
在网页中JS函数自动执行常用三种方法
在HTML中的Head区域中,有如下函数:
<SCRIPT
LANGUAGE="JavaScript">
functionn
MyAutoRun()
{
//以下是您的函数的代码,请自行修改先!
alert("函数自动执行哦!");
}
</SCRIPT>
下面,我们就针对上面的函数,让其在网页载入的时候自动运行!
①第一种方法
将如上代码改为:
<SCRIPT
LANGUAGE="JavaScript">
functionn
MyAutoRun()
{
//以下是您的函数的代码,请自行修改先!
alert("函数自动执行哦!");
}
window.onload=MyAutoRun();
//仅需要加这一句
</SCRIPT>
②第二种方法
修改网页的Body为:
<body onLoad="MyAutoRun();">
或者改为:
<body onLoad="javascript:MyAutoRun();">
③第三种方法
使用JS定时器来间断性的执行函数:
setTimeout("MyAutoRun()",1000); //隔1000毫秒就执行一次MyAutoRun()函数
实现方法,将最上面的那JS函数,改为:
<SCRIPT
LANGUAGE="JavaScript">
functionn
MyAutoRun()
{
//以下是您的函数的代码,请自行修改先!
alert("函数自动执行哦!");
}
setTimeout("MyAutoRun()",1000);
//这样就行拉
</SCRIPT>
追问
感谢解答,但是好像不是我想问的内容,我的问题重点不在javascript上,而是想知道怎么用VB.NET连续翻页同时读取数据。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询