Foxtable(狐表)用户栏目专家坐堂 → 【已解决】[求助]通过元素align、class获取文字。如何获取网页数据?


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

主题:【已解决】[求助]通过元素align、class获取文字。如何获取网页数据?

帅哥哟,离线,有人找我吗?
nblwar
  11楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6800 威望:0 精华:1 注册:2012/8/7 22:03:00
  发帖心情 Post By:2019/1/10 11:22:00 [只看该作者]

你们这个系统大多是js动态生成的,要搞明白老费劲了,一般人还是放弃吧

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


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

以下是引用zto001在2019/1/10 10:46:00的发言:
还是不会,class有,name没有,你发的这些例子都是ID或者name的

 

classname就是元素里面的class啊,看懂例子后测试啊。看不懂怎么说你也不懂。


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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/1/11 15:29:00 [只看该作者]

获取信息代码:


Dim web As New System.Windows.Forms.WebBrowser() web.Navigate("http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=129570") Do Until web.ReadyState = 4 Application.DoEvents Loop Dim elems As object = web.Document.GetElementById("textstyle_10") '获取信息ID If elems IsNot Nothing Then msgbox(elems.InnerText) End If


这样没错也能获取,但是我不知道怎么用class去获取

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


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

Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://www.hzctc.cn/OpenBidRecord/Index?id=36177CC9-5F91-473F-84E6-A2EFA35D6DD9&tenderID=969B1A8D-1A57-4A21-864F-A5E98F8288FB&ModuleID=486")
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("Table1") IsNot Nothing
    Application.DoEvents
Loop

Dim elems As object = web.Document.GetElementsByTagName("div")
For Each elem As object In elems
    If elem.getattribute("classname") = "row cl" Then
        If elem.InnerText.contains("工程编号") Then
            msgbox(elem.GetElementsByTagName("span")(0).innerText)
        ElseIf elem.InnerText.contains("建设单位") Then
            msgbox(elem.GetElementsByTagName("span")(0).innerText)
        End If
    End If
Next

elems = web.Document.GetElementById("Table1").GetElementsByTagName("tr")
For i As Integer = 1 To elems.count-2
    Dim tds = elems(i).getelementsbytagname("td")
    msgbox(tds(0).InnerText & " " & tds(1).InnerText)
Next


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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/1/11 17:03:00 [只看该作者]

Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://www.hzctc.cn/OpenBidRecord/Index?id=36177CC9-5F91-473F-84E6-A2EFA35D6DD9&tenderID=969B1A8D-1A57-4A21-864F-A5E98F8288FB&ModuleID=486")

Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("Table1") IsNot Nothing
    Application.DoEvents
Loop


弱弱的问问,我已经打开网页了。需要从控件WebBrowser1当前所在的页面获取信息,需要把这段代码应该改成怎样呢?


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


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

改成

 

Dim web as System.Windows.Forms.WebBrowser = e.form.controls("webbrowser1").Basecontrol


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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/1/12 13:09:00 [只看该作者]

Dim web as System.Windows.Forms.WebBrowser = e.form.controls("webbrowser1").Basecontrol

Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("Table1") IsNot Nothing
    Application.DoEvents
Loop

Dim elems As object = web.Document.GetElementsByTagName("div")
For Each elem As object In elems
    If elem.getattribute("classname") = "row cl" Then
        If elem.InnerText.contains("工程编号") Then
            msgbox(elem.GetElementsByTagName("span")(0).innerText)
        ElseIf elem.InnerText.contains("建设单位") Then
            msgbox(elem.GetElementsByTagName("span")(0).innerText)
        End If
    End If

Next

elems = web.Document.GetElementById("Table1").GetElementsByTagName("tr")
For i As Integer = 1 To elems.count-2
    Dim tds = elems(i).getelementsbytagname("td")

    msgbox(tds(0).InnerText & " " & tds(1).InnerText)
Next


很抱歉,确实不懂这个代码,蓝色字体都是不懂得,下面是我那网页代码,可以告诉我一下我需要获取粉色字体的信息吗?msgbox(粉色字体的字符串)


网页的代码是:


<table cellspacing="0" cellpadding="0" border="0" class="el-table__body" style="width: 1190px;"><colgroup><col name="el-table_1_column_1" width="50"><col name="el-table_1_column_2" width="60"><col name="el-table_1_column_3" width="200"><col name="el-table_1_column_4" width="80"><col name="el-table_1_column_5" width="170"><col name="el-table_1_column_6" width="160"><col name="el-table_1_column_7" width="160"><col name="el-table_1_column_8" width="80"><col name="el-table_1_column_9" width="80"><col name="el-table_1_column_10" width="150"></colgroup><tbody><tr class="el-table__row"><td class="el-table_1_column_1 is-center  is-hidden"><div class="cell"><div>1</div></div></td><td class="el-table_1_column_2 is-center el-table-column--selection is-hidden"><div class="cell"><label role="checkbox" class="el-checkbox"><span aria-checked="mixed" class="el-checkbox__input"><span class="el-checkbox__inner"></span><input type="checkbox" aria-hidden="true" class="el-checkbox__original" value=""></span><!----></label></div></td><td class="el-table_1_column_3 is-center  is-hidden"><div class="cell"><button data-v-6cf7ad1e="" type="button" class="el-button el-button--primary el-button--small is-plain"><!----><!----><span>抢单</span></button><!----></div></td><td class="el-table_1_column_4 is-center "><div class="cell">KT2019011223834</div></td><td class="el-table_1_column_5 is-center "><div class="cell"><a data-v-6cf7ad1e="" href="#/customerServiceComplaint/reportForm/fastTrack?BillCode=75122914346273" class="error-column">75122914346273</a></div></td><td class="el-table_1_column_6 is-center "><div class="cell">2019-01-12 12:47:03</div></td><td class="el-table_1_column_7 is-center "><div class="cell">2019-01-13 11:47:03</div></td><td class="el-table_1_column_8 is-center "><div class="cell"></div></td><td class="el-table_1_column_9 is-center "><div class="cell">否</div></td><td class="el-table_1_column_10 is-center "><div class="cell"><span data-v-6cf7ad1e="" class="el-tag el-tooltip el-tag--info el-tag--small" aria-describedby="el-tooltip-7124" tabindex="0">暂无此信息<!----></span></div></td></tr><tr class="el-table__row error-row"><td class="el-table_1_column_1 is-center  is-hidden"><div class="cell"><div>2</div></div></td><td class="el-table_1_column_2 is-center el-table-column--selection is-hidden"><div class="cell"><label role="checkbox" class="el-checkbox"><span aria-checked="mixed" class="el-checkbox__input"><span class="el-checkbox__inner"></span><input type="checkbox" aria-hidden="true" class="el-checkbox__original" value=""></span><!----></label></div></td><td class="el-table_1_column_3 is-center  is-hidden"><div class="cell"><button data-v-6cf7ad1e="" type="button" class="el-button el-button--primary el-button--small is-plain"><!----><!----><span>抢单</span></button><button data-v-6cf7ad1e="" disabled="disabled" type="button" class="el-button el-button--warning el-button--small is-disabled is-plain"><!----><!----><span>已分配业务员</span></button></div></td><td class="el-table_1_column_4 is-center "><div class="cell">KT2019011221697</div></td><td class="el-table_1_column_5 is-center "><div class="cell"><a data-v-6cf7ad1e="" href="#/customerServiceComplaint/reportForm/fastTrack?BillCode=75121716480701" class="error-column">75121716480701</a></div></td><td class="el-table_1_column_6 is-center "><div class="cell">2019-01-12 12:20:16</div></td><td class="el-table_1_column_7 is-center "><div class="cell">2019-01-13 11:20:16</div></td><td class="el-table_1_column_8 is-center "><div class="cell"></div></td><td class="el-table_1_column_9 is-center "><div class="cell">否</div></td><td class="el-table_1_column_10 is-center "><div class="cell"><span data-v-6cf7ad1e="" class="el-tag el-tooltip el-tag--info el-tag--small" aria-describedby="el-tooltip-1990" tabindex="0">菜鸟虚假签收<!----></span></div></td></tr><tr class="el-table__row"><td class="el-table_1_column_1 is-center  is-hidden"><div class="cell"><div>3</div></div></td><td class="el-table_1_column_2 is-center el-table-column--selection is-hidden"><div class="cell"><label role="checkbox" class="el-checkbox"><span aria-checked="mixed" class="el-checkbox__input"><span class="el-checkbox__inner"></span><input type="checkbox" aria-hidden="true" class="el-checkbox__original" value=""></span><!----></label></div></td><td class="el-table_1_column_3 is-center  is-hidden"><div class="cell"><button data-v-6cf7ad1e="" type="button" class="el-button el-button--primary el-button--small is-plain"><!----><!----><span>抢单</span></button><!----></div></td><td class="el-table_1_column_4 is-center "><div class="cell">KT2019011223328</div></td><td class="el-table_1_column_5 is-center "><div class="cell"><a data-v-6cf7ad1e="" href="#/customerServiceComplaint/reportForm/fastTrack?BillCode=75122560250458" class="error-column">75122560250458</a></div></td><td class="el-table_1_column_6 is-center "><div class="cell">2019-01-12 12:40:29</div></td><td class="el-table_1_column_7 is-center "><div class="cell">2019-01-13 11:40:29</div></td><td class="el-table_1_column_8 is-center "><div class="cell"></div></td><td class="el-table_1_column_9 is-center "><div class="cell">否</div></td><td class="el-table_1_column_10 is-center "><div class="cell"><span data-v-6cf7ad1e="" class="el-tag el-tooltip el-tag--info el-tag--small" aria-describedby="el-tooltip-4465" tabindex="0">暂无此信息<!----></span></div></td></tr><!----></tbody></table>


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


加好友 发短信
等级:超级版主 帖子:105925 积分:538688 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/12 14:57:00 [只看该作者]

Dim elems As object = web.Document.GetElementsByTagName("td")
For Each elem As object In elems
    If elem.getattribute("classname") = "el-table_1_column_4 is-center" Then
        msgbox(elem.innerText)
    ElseIf elem.getattribute("classname") = "el-table_1_column_5 is-center" Then
        msgbox(elem.innerText)
    End If
Next

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/1/12 16:44:00 [只看该作者]

Dim web as System.Windows.Forms.WebBrowser = e.form.controls("webbrowser1").Basecontrol

Do Until web.ReadyState = 4 
    Application.DoEvents
Loop

 msgbox(“测试代码正常显示没问题”)


Dim elems As object = web.Document.GetElementsByTagName("td")   ‘这个是查找tb存在多少个遍历多少次吧
For Each elem As object In elems

 msgbox(“测试代码正常显示没问题”)


’红色区域代码一直未执行,一直在循环遍历没停下来过
    If elem.getattribute("classname") = "el-table_1_column_4 is-center" Then
        msgbox(elem.innerText)
    ElseIf elem.getattribute("classname") = "el-table_1_column_5 is-center" Then
        msgbox(elem.innerText)
    End If
Next

很抱歉又来找您了。这个代码执行下来红色区域没执行过一次,一直处于遍历的循环中(不知道循环还是无限执行)。
[此贴子已经被作者于2019/1/12 16:51:57编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/1/12 17:01:00 [只看该作者]

Dim web As System.Windows.Forms.WebBrowser = e.form.controls("webbrowser1").Basecontrol

Do Until web.ReadyState = 4 
    Application.DoEvents
Loop
Dim elems As object = web.Document.GetElementsByTagName("div")
For Each elem As object In elems


    If elem.getattribute("classname") = "cell" Then
        msgbox(elem.innerText)
    End If
Next


我这样成功获取到相关的信息了,但是有两个问题,全部获取之后会刷新网页、还弹出一个错误框,是
Do Until web.ReadyState = 4 
    Application.DoEvents
Loop
这个代码的问题是吗?

还有我获去出来之后,应该怎样才能够让他变成表格数据?
[此贴子已经被作者于2019/1/12 17:05:18编辑过]

 回到顶部
总数 30 上一页 1 2 3 下一页