Foxtable(狐表)用户栏目专家坐堂 → 求助:大红袍老师 麻烦看看网页怎么遍历查值 谢谢


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

主题:求助:大红袍老师 麻烦看看网页怎么遍历查值 谢谢

帅哥哟,离线,有人找我吗?
李孝春
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:大红袍老师 麻烦看看网页怎么遍历查值 谢谢  发帖心情 Post By:2016/5/12 13:21:00 [显示全部帖子]

Dim web As new System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate("http://toutiao.com/m6051259851/")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop

Dim divs = web.Document.GetElementById("ColumnContainer")
For Each div As object In divs.GetElementsByTagName("div")
    If div.GetAttribute("ClassName") = "pin" Then
        Dim tbs = div.GetElementsByTagName("table")
        Dim trs = tbs(0).GetElementsByTagName("tr")
        output.show(trs(0).GetElementsByTagName("h3")(0).Innertext)
        output.show(trs(1).GetElementsByTagName("div")(1).Innertext)
        Dim tds = trs(2).GetElementsByTagName("td")
        output.show(tds(1).innertext)
        output.show(tds(2).innertext)
        output.show(tds(3).innertext)
        output.show("------")
    End If
Next



之前的今日头条网页查值,大红袍老师利用了上面代码实现了相关数据的查值。
由于我个人理解不深透,拟参考上述写法,获取其他网页代码中的值,结果提示错误。求指导。

图片点击可在新窗口打开查看此主题相关图片如下:7228.tm.png
图片点击可在新窗口打开查看


下述是我参考写的代码
Dim web As new System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate("http://www.gzwengan.jcy.gov.cn/gzdt/")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim bodys = web.Document.GetElementById("fontzoom")
For Each body As object In bodys.GetElementsByTagName("body")
    If body.GetAttribute("Classname") = "b14" Then
        Dim tbs = body.GetElementsByTagName("table")
        Dim trs = tbs(0).GetElementsByTagName("td")
        output.show(trs(0).GetElementsByTagName("left")(0).Innertext)
        'output.show(trs(1).GetElementsByTagName("href")(1).Innertext)
        'Dim tds = trs(1).GetElementsByTagName("td")
        'output.show(tds(1).innertext)
        'output.show(tds(2).innertext)
        'output.show(tds(3).innertext)
        output.show("------")
    End If
Next

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(大红袍)Dim web As new System.Windows.Form...  发帖心情 Post By:2016/5/12 14:21:00 [显示全部帖子]

大红袍老师,请问下面这个代码是怎么得到的36这个数字呢?
有没有第三方工具可以快速查找这样的数值或者ID呢?

Dim tb = web.document.GetElementsByTagName("table")(36)


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(大红袍)以下是引用李孝春在2016/5/12 14:21:...  发帖心情 Post By:2016/5/12 14:38:00 [显示全部帖子]

是检查元素么?我没有找到查看元素 呵呵

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(大红袍) 那你就下载一个firefox浏览器。...  发帖心情 Post By:2016/5/12 15:10:00 [显示全部帖子]

话说这个36数字是怎么来呢的?手动数么?我直接输入36就可以定位到这里

图片点击可在新窗口打开查看此主题相关图片如下:75c7.tm.png
图片点击可在新窗口打开查看


innerHtml这个代码下怎么截取对应数据呢?也就是
<TR>
<TD align=left> · <A class=b14 href="./201410/t20141026_1488013.shtml" target=_blank>瓮安县人民检察院召开专题组织生活会公开评议党员</A></TD></TR>
将这个截取为
./201410/t20141026_1488013.shtml
瓮安县人民检察院召开专题组织生活会公开评议党员


图片点击可在新窗口打开查看此主题相关图片如下:84c7.tm.png
图片点击可在新窗口打开查看



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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(大红袍)对于没有特殊标记的元素,也就是 没有...  发帖心情 Post By:2016/5/12 15:16:00 [显示全部帖子]

看来网页操作还需要逐步学习很多东西哦!




innerHtml这个代码下怎么截取对应数据呢?也就是
<TR>
<TD align=left> · <A class=b14 href="./201410/t20141026_1488013.shtml" target=_blank>瓮安县人民检察院召开专题组织生活会公开评议党员</A></TD></TR>
将这个截取为
./201410/t20141026_1488013.shtml
瓮安县人民检察院召开专题组织生活会公开评议党员

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(大红袍)在里面查 A 元素,然后获取属性值&...  发帖心情 Post By:2016/5/12 15:32:00 [显示全部帖子]

Dim web As new System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate("http://www.gzwengan.jcy.gov.cn/gzdt/")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim i As Integer = 0
Dim tb1s = web.document.GetElementsByTagName("table")(36)
output.show(tb1s.innerHtml)
For Each tb1 As object In tb1s.GetElementsByTagName("tr")
    If tb1.GetAttribute("Class") = "b14" Then
        Dim tbs = tb1.GetElementsByTagName("a")
        Dim trs = tbs(0).GetElementsByTagName("href")
        Output.Show(tb1s.innerHtml & " " & tb1.GetAttribute("href"))
        output.show("------")
    End If
Next

上述红色部分运行没有效果

貌似我没有理解透 应该是在当前这个表中来获取数据  与之前的今日头条是直接在DIV中读取数据不一样的操作
[此贴子已经被作者于2016/5/12 15:34:00编辑过]

 回到顶部