以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 网页数据采集 (http://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 -- 啊啊. 我明白 什么意思了, 我试试 |