|
本帖最后由 mjzxlmg 于 2013-6-24 12:17 编辑
doryan 发表于 2013-6-21 14:49 
太笼统了......
巧妇难为无米之炊...何况我还是个新手
请教用VB.NET 获取http://www.gdmjzx.com/E_BigClass.asp?E_typeid=2&E_BigClassID=15中的每周工作安排数据方法,要求可以选择周、也可以选择全部。
前面用VBA的方法可以获取数据,但用VB.NET只能第一次获取,第二次以后出现错误。
Private Sub Import_data_Load(sender As Object, e As EventArgs) Handles MyBase.Load
On Error GoTo 1
Dim Week_Title() As String = {"第二十三周工作安排", "第二十二周工作安排", "第二十一周工作安排", "第二十周工作安排", "第十九周工作安排", "第十八周工作安排", "第十七周工作安排", "第十六周工作安排", "第十五周工作安排", "第十四周工作安排", "第十三周工作安排", "第十二周工作安排", "第十一周工作安排", "第十周工作安排", "第九周工作安排", "第八周工作安排", "第七周工作安排", "第六周工作安排", "第五周工作安排", "第四周工作安排", "第三周工作安排", "第二周工作安排", "第一周工作安排"}
Dim IE As Object = CreateObject("InternetExplorer.Application")
IE.navigate("http://www.gdmjzx.com/E_nosmallClass.asp?E_typeid=2&E_BigClassID=15")
Do While IE.readyState <> 4
Application.DoEvents()
Loop
For Each Find As Object In IE.Document.all.tags("a") '这里可改
For i As Integer = 0 To 22
If InStr(Find.innerText, Week_Title(i)) Then '首次弹出窗体正常运行,关闭窗体再运行出现错误
Dim str As String = Strings.Left(Week_Title(i), InStr(Week_Title(i), "周"))
If Not Week_Choose_dic.ContainsKey(str) Then
Week_Choose_dic(str) = Mid$(Find.href, InStr(Find.href, "=") + 1, Len(Find.href))
ComboBox1.Items.Add(str)
End If
End If
Next
Next
1:
IE.Quit()
IE = Nothing
If Week_Choose_dic.Count Then
ComboBox1.Text = Week_Choose_dic.Keys(0)
Label2.Text = "查询到" & Week_Choose_dic.Count & "周数据!"
Else
MessageBox.Show("没有查询到数据!请稍候再试试。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Stop)
Close()
End If
End Sub
|
|