Foxtable(狐表)用户栏目专家坐堂 → 网页数据采集


  共有3478人关注过本帖树形打印复制链接

主题:网页数据采集

美女呀,离线,留言给我吧!
qianqian1530
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:5567 威望:0 精华:0 注册:2013/12/4 8:56:00
网页数据采集  发帖心情 Post By:2015/1/18 14:30:00 [只看该作者]

Public Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)


这句话怎么修改啊?  我不想在窗口里 放 游览器```

看见有人 Dim web As New System.Windows.Forms.WebBrowser 这么写,  但是 我自己改成

Public Sub  New System.Windows.Forms.WebBrowser 显示不对
..

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/18 15:09:00 [只看该作者]

Public web As New System.Windows.Forms.WebBrowser

 回到顶部
美女呀,离线,留言给我吧!
qianqian1530
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:5567 威望:0 精华:0 注册:2013/12/4 8:56:00
  发帖心情 Post By:2015/1/18 15:20:00 [只看该作者]

恩.. 但是这么写的话 , 提示错误 \\

语句不能体现在窗口外体




我的代码是  


'''
Public lb As String
Public Isgo As Boolean
Public Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
If Isgo Then
    Dim web As System.Windows.Forms.WebBrowser = sender
    If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete
        Select Case lb
            Case "访问"
                If web.Document.Body.OuterHtml.Contains("return submitFnc('custlogin', 'member_login', 'login');") Then
                    Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("a")
                    For i As Integer = 0 To hec.Count-1
                        If hec(i).OuterHtml.Contains("return submitFnc('custlogin', 'member_login', 'login');") Then
                            web.Document.GetElementById("common_email").SetAttribute("Value","qlc@qlc.jp")
                            Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "输入帐号..."
                            web.Document.GetElementById("common_pass").SetAttribute("Value","qianqian")
                            Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "输入密码..."
                            hec(i).InvokeMember("click")
                            If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete
                                Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "登录中..."
                                Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "登录成功..."
                                lb="打开"
                            End If
                            Exit For
                        End If
                    Next
                Else
                    If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete
                        Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "已登录..."
                        Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "准备下载..."
                        Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "加载中..."
                        web.Navigate("http://www.shozaioh.com/stocks.html")
                        lb="更新"
                    End If
                End If
            Case "打开"
                web.Navigate("http://www.shozaioh.com/stocks.html")
                Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "打开成功..."
                lb="更新"
            Case "更新"
                With DataTables("Z_在庫_商品在庫表")
                    .DataRows.Clear() '
                End With
                Dim elems As System.Windows.Forms.HtmlElementCollection
                Elems = web.Document.GetElementsByTagName("table")
                For Each elem As System.Windows.Forms.Htmlelement In elems
                    Dim sa As Integer
                    If elem.GetAttribute("id") = "stock_list" Then
                        Dim e_Info As System.Windows.Forms.HtmlElement = elem.GetElementsByTagName("tbody")(0)
                        For sa= 0 To 10000 Step 1
                            If e_Info.GetElementsByTagName("tr").Count  =sa  Then
                                Exit For
                            Else
                                Dim ndr As DataRow = DataTables("Z_在庫_商品在庫表").AddNew
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(0).InnerText <> "" Then
                                    Dim e_Info0 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(0)
                                    ndr("商品名") = e_Info0.InnerText.Replace("?","-")
                                Else
                                    ndr("商品名") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(1).InnerText <> "" Then
                                    Dim e_Info1 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(1)
                                    ndr("商品型番") = e_Info1.InnerText
                                Else
                                    ndr("商品型番") ="-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(2).InnerText <> "" Then
                                    Dim e_Info2 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(2)
                                    If e_Info2.InnerText.Contains("JAN") Then
                                        Dim Tel As String =e_Info2.InnerText
                                        If Tel.Contains("JAN") Then
                                            Dim Parts() As String = Tel.Split("JAN:")
                                            ndr("色") =Parts(0)
                                            ndr("JAN") = Parts(1)
                                            ndr("JAN") =ndr("JAN").Replace("AN:","").Replace("AN:","").Replace(")","").Replace(")","")
                                            ndr("色") =ndr("色").Replace(VbCrLf  & "(","").Replace(VbCrLf  & "(","")
                                        End If
                                    Else
                                        ndr("色") = e_Info2.InnerText
                                        ndr("色") =ndr("色").Replace(VbCrLf,"")
                                        ndr("JAN") = "-"
                                    End If
                                Else
                                    ndr("色") = "-"
                                    ndr("JAN") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(3).InnerText <> "" Then
                                    Dim e_Info3 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(3)
                                    ndr("属性コード") = e_Info3.InnerText
                                Else
                                    ndr("属性コード")  = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(4).InnerText <> "" Then
                                    Dim e_Info4 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(4)
                                    ndr("在庫") = e_Info4.InnerText
                                Else
                                    ndr("在庫") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(5).InnerText <> "" Then
                                    Dim e_Info5 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(5)
                                    ndr("次回入荷予定") = e_Info5.InnerText
                                Else
                                    ndr("次回入荷予定") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(6).InnerText <> "" Then
                                    Dim e_Info6 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(6)
                                    ndr("備考欄") = e_Info6.InnerText
                                Else
                                    ndr("備考欄") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(7).InnerText <> "" Then
                                    Dim e_Info7 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(7)
                                    ndr("状態") = e_Info7.InnerText
                                Else
                                    ndr("状態") = "-"
                                End If
                                ndr("code") =  ndr("商品型番") & ndr("属性コード")
                            End If
                        Next
                        DataTables("Z_在庫_商品在庫表").Save()
                        Dim Sender1 As WinForm.CheckBox = Forms("在庫更新").Controls("CheckBox1")
                        If Sender1.Checked = True Then
                            Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "准备上传..."
                            vars("DJS") ="上传"
                            Forms("在庫更新").TimerEnabled = True
                            Forms("在庫更新").TimerInterval = 500
                        Else
                            Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "准备上传..."
                            vars("DJS") =""
                            Dim 数据发布 As WinForm.Button = Forms("在庫更新").Controls("数据发布")
                            数据发布.PerformClick()
                        End If
                    End If
                Next
                Isgo = False
                Forms("在庫更新").Controls("PictureBox5").Visible=False
        End Select
    End If
End If
End Sub

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/18 15:27:00 [只看该作者]

 呃。没提示错误,出错例子上传上来

 回到顶部
美女呀,离线,留言给我吧!
qianqian1530
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:5567 威望:0 精华:0 注册:2013/12/4 8:56:00
回复:(有点甜) 呃。没提示错误,出错例子上传...  发帖心情 Post By:2015/1/18 15:30:00 [只看该作者]

  不是.. 发错了





'''
Public lb As String
Public Isgo As Boolean
Public web As New System.Windows.Forms.WebBrowser
If Isgo Then
    Dim web As System.Windows.Forms.WebBrowser = sender
    If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete
        Select Case lb
            Case "访问"
                If web.Document.Body.OuterHtml.Contains("return submitFnc('custlogin', 'member_login', 'login');") Then
                    Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("a")
                    For i As Integer = 0 To hec.Count-1
                        If hec(i).OuterHtml.Contains("return submitFnc('custlogin', 'member_login', 'login');") Then
                            web.Document.GetElementById("common_email").SetAttribute("Value","qlc@qlc.jp")
                            Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "输入帐号..."
                            web.Document.GetElementById("common_pass").SetAttribute("Value","qianqian")
                            Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "输入密码..."
                            hec(i).InvokeMember("click")
                            If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete
                                Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "登录中..."
                                Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "登录成功..."
                                lb="打开"
                            End If
                            Exit For
                        End If
                    Next
                Else
                    If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete
                        Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "已登录..."
                        Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "准备下载..."
                        Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "加载中..."
                        web.Navigate("http://www.shozaioh.com/stocks.html")
                        lb="更新"
                    End If
                End If
            Case "打开"
                web.Navigate("http://www.shozaioh.com/stocks.html")
                Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "打开成功..."
                lb="更新"
            Case "更新"
                With DataTables("Z_在庫_商品在庫表")
                    .DataRows.Clear() '
                End With
                Dim elems As System.Windows.Forms.HtmlElementCollection
                Elems = web.Document.GetElementsByTagName("table")
                For Each elem As System.Windows.Forms.Htmlelement In elems
                    Dim sa As Integer
                    If elem.GetAttribute("id") = "stock_list" Then
                        Dim e_Info As System.Windows.Forms.HtmlElement = elem.GetElementsByTagName("tbody")(0)
                        For sa= 0 To 10000 Step 1
                            If e_Info.GetElementsByTagName("tr").Count  =sa  Then
                                Exit For
                            Else
                                Dim ndr As DataRow = DataTables("Z_在庫_商品在庫表").AddNew
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(0).InnerText <> "" Then
                                    Dim e_Info0 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(0)
                                    ndr("商品名") = e_Info0.InnerText.Replace("?","-")
                                Else
                                    ndr("商品名") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(1).InnerText <> "" Then
                                    Dim e_Info1 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(1)
                                    ndr("商品型番") = e_Info1.InnerText
                                Else
                                    ndr("商品型番") ="-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(2).InnerText <> "" Then
                                    Dim e_Info2 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(2)
                                    If e_Info2.InnerText.Contains("JAN") Then
                                        Dim Tel As String =e_Info2.InnerText
                                        If Tel.Contains("JAN") Then
                                            Dim Parts() As String = Tel.Split("JAN:")
                                            ndr("色") =Parts(0)
                                            ndr("JAN") = Parts(1)
                                            ndr("JAN") =ndr("JAN").Replace("AN:","").Replace("AN:","").Replace(")","").Replace(")","")
                                            ndr("色") =ndr("色").Replace(VbCrLf  & "(","").Replace(VbCrLf  & "(","")
                                        End If
                                    Else
                                        ndr("色") = e_Info2.InnerText
                                        ndr("色") =ndr("色").Replace(VbCrLf,"")
                                        ndr("JAN") = "-"
                                    End If
                                Else
                                    ndr("色") = "-"
                                    ndr("JAN") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(3).InnerText <> "" Then
                                    Dim e_Info3 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(3)
                                    ndr("属性コード") = e_Info3.InnerText
                                Else
                                    ndr("属性コード")  = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(4).InnerText <> "" Then
                                    Dim e_Info4 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(4)
                                    ndr("在庫") = e_Info4.InnerText
                                Else
                                    ndr("在庫") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(5).InnerText <> "" Then
                                    Dim e_Info5 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(5)
                                    ndr("次回入荷予定") = e_Info5.InnerText
                                Else
                                    ndr("次回入荷予定") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(6).InnerText <> "" Then
                                    Dim e_Info6 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(6)
                                    ndr("備考欄") = e_Info6.InnerText
                                Else
                                    ndr("備考欄") = "-"
                                End If
                                If e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(7).InnerText <> "" Then
                                    Dim e_Info7 As System.Windows.Forms.HtmlElement = e_Info.GetElementsByTagName("tr")(sa).GetElementsByTagName("td")(7)
                                    ndr("状態") = e_Info7.InnerText
                                Else
                                    ndr("状態") = "-"
                                End If
                                ndr("code") =  ndr("商品型番") & ndr("属性コード")
                            End If
                        Next
                        DataTables("Z_在庫_商品在庫表").Save()
                        Dim Sender1 As WinForm.CheckBox = Forms("在庫更新").Controls("CheckBox1")
                        If Sender1.Checked = True Then
                            Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "准备上传..."
                            vars("DJS") ="上传"
                            Forms("在庫更新").TimerEnabled = True
                            Forms("在庫更新").TimerInterval = 500
                        Else
                            Forms("在庫更新").Controls("TextBox1").text + = vbCrLf & "准备上传..."
                            vars("DJS") =""
                            Dim 数据发布 As WinForm.Button = Forms("在庫更新").Controls("数据发布")
                            数据发布.PerformClick()
                        End If
                    End If
                Next
                Isgo = False
                Forms("在庫更新").Controls("PictureBox5").Visible=False
        End Select
    End If
End If
End Sub

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/18 15:35:00 [只看该作者]

 改成这样啊

 

Public Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)

 

 调用的时候,这样啊

 

Dim web As New System.Windows.Forms.WebBrowser


 回到顶部
美女呀,离线,留言给我吧!
qianqian1530
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:5567 威望:0 精华:0 注册:2013/12/4 8:56:00
  发帖心情 Post By:2015/1/18 15:39:00 [只看该作者]

啊啊.  我明白 什么意思了, 我试试


 回到顶部