http://17s.cm/task_list.php?task_ex=1 这个网页一打开就先出个框说数据加载中,然后等一下才出现内容,我用vb的Private Sub Command1_Click() Dim obj
Set obj = CreateObject("Microsoft.XMLHTTP")
obj.Open "GET", "http://17s.cm/task_list.php?task_ex=1", False
obj.setRequestHeader "User-Agent", " Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CNCDialer; QQDownload 627; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"
obj.Send
Text1.Text = obj.responseTextEnd Sub
这个代码去得源码,但是得到的是一些别的源代码,想要的数据却没有,请问该怎么办啊?
Set obj = CreateObject("Microsoft.XMLHTTP")
obj.Open "GET", "http://17s.cm/task_list.php?task_ex=1", False
obj.setRequestHeader "User-Agent", " Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CNCDialer; QQDownload 627; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"
obj.Send
Text1.Text = obj.responseTextEnd Sub
这个代码去得源码,但是得到的是一些别的源代码,想要的数据却没有,请问该怎么办啊?
比较复杂我的方法这样。
1、用ie控件,默认隐藏,大小为180px*180px,WebBrowser1.Navigate "http://17s.cm/task_list.php?task_ex=1"
2、用 WebBrowser1_StatusTextChange(ByVal Text As String)事件,判断当Text="完毕"时取数据。WebBrowser1.Visible = True
Clipboard.Clear
3、取数据思路也比较复杂
a、使用SetCursorPos把鼠标定位在ie位置上。页面左上角空白处。不要点到页面中的链接或按钮就行。SetCursorPos Me.Left/15+WebBrowser1.Left/15+10,Me.Top/15+WebBrowser1.Top+30
b、发送单击事件 mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, px, py, 0, 0
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, px, py, 0, 0
c、发送ctrl+a事件 keybd_event vbKeyControl, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event 97, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event 97, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
keybd_event vbKeyControl, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
d、发送ctrl+c事件 keybd_event vbKeyControl, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event 99, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event 99, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
keybd_event vbKeyControl, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
e、然后直接使用VB.Clipboard.GetText取值。
Option Explicit
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As LongPrivate Declare Sub mouse_event Lib "user32" (ByVal dwflags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwflags As Long, ByVal dwExtraInfo As Long)Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_LEFTDOWN = &H2Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2Dim flg As BooleanPrivate Sub Form_Load()
WebBrowser1.Width = 60
WebBrowser1.Height = 60
End SubPrivate Sub labGet_Click()
flg = True
Clipboard.Clear
WebBrowser1.Navigate "http://17s.cm/task_list.php?task_ex=1"
'WebBrowser1.Navigate "http://localhost/in"
End SubPrivate Sub WebBrowser1_StatusTextChange(ByVal Text As String)
If Text = "完毕" And flg = True Then
flg = False
Text1.Text = getDate
End If
End SubPrivate Function getDate() As String
SetCursorPos Me.Left / 15 + WebBrowser1.Left / 15 + 7, Me.Top / 15 + WebBrowser1.Top / 15 + 32
DoEvents mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
DoEvents keybd_event vbKeyControl, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event 65, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event 65, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
keybd_event vbKeyControl, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
DoEvents keybd_event vbKeyControl, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event 67, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event 67, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
keybd_event vbKeyControl, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
DoEvents
getDate = VB.Clipboard.GetText
End Function