以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  网页数据采集  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=63308)

--  作者:qianqian1530
--  发布时间: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 显示不对
..

--  作者:有点甜
--  发布时间:2015/1/18 15:09:00
--  
Public web As New System.Windows.Forms.WebBrowser
--  作者:qianqian1530
--  发布时间: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

--  作者:有点甜
--  发布时间:2015/1/18 15:27:00
--  
 呃。没提示错误,出错例子上传上来
--  作者:qianqian1530
--  发布时间: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

--  作者:有点甜
--  发布时间: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
--  发布时间:2015/1/18 15:39:00
--  
啊啊.  我明白 什么意思了, 我试试