Foxtable(狐表)用户栏目专家坐堂 → 这种网页数据如何抓取数据


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

主题:这种网页数据如何抓取数据

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/10/17 11:20:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:11115.png
图片点击可在新窗口打开查看
十分感谢甜版,上面的问题解决了,不好意思又有一个新问题:
下面这段代码为什么只提取红框的数据,右边的数据怎么提取??如“工程名称”,”代理机构“

Dim web As New System.Windows.Forms.WebBrowser()
web.scripterrorssuppressed = True
web.Navigate("http://www.hzctc.cn/OpenBidRecord/Index?id=111E6F37-5AB7-4F3F-B56D-E355701A68E9&tenderID=416E3F38-00E8-4CC4-8D72-8DE2EDA078AC&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
        If elem.InnerText.contains("建设单位") Then
            msgbox(elem.GetElementsByTagName("span")(0).innerText)
        ElseIf elem.InnerText.contains("代理机构") Then
            msgbox(elem.GetElementsByTagName("span")(0).innerText)
        End If
        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


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

[此贴子已经被作者于2018/10/17 11:20:44编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/10/17 12:32:00 [显示全部帖子]

甜老师你好:我的需求是:
 把"row cl"改成"portlet-body",并遍历nms,这样如何调整??


Dim web As New System.Windows.Forms.WebBrowser()
web.scripterrorssuppressed = True
web.Navigate("http://www.hzctc.cn/OpenBidRecord/Index?id=111E6F37-5AB7-4F3F-B56D-E355701A68E9&tenderID=416E3F38-00E8-4CC4-8D72-8DE2EDA078AC&ModuleID=486")
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("Table1") IsNot Nothing
    Application.DoEvents
Loop

Dim nms() As String = {"工程编号","工程名称","建设单位","代理机构","开标时间","开标地点","代理人员"}
Dim elems As object = web.Document.GetElementsByTagName("div")
For Each elem As object In elems
    If elem.getattribute("classname") = "portlet-body" Then
        For Each nm As String In nms
            If elem.InnerText.contains(nm) Then
                msgbox(elem.GetElementsByTagName("span")(0).innerText)
                
            End If
        End If
    Next
Next
[此贴子已经被作者于2018/10/17 15:09:46编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/10/17 16:25:00 [显示全部帖子]

甜老师你好,十分感谢你的指点。
下面这个网页数据如何提取??谢谢
http://www.hzctc.cn/AfficheShow/Home?AfficheID=1192f417-f6a2-4a92-9cd7-47f0c1eb3133&IsInner=0&ModuleID=22


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


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/2/20 2:11:00 [显示全部帖子]

老师你好:
1、下面代码为什么会少数据(红线下划部份)?如何调整?
2、如何把1、2、3、4等表的数据都提取出来?

Dim web As New System.Windows.Forms.WebBrowser()
web.scripterrorssuppressed = True
web.Navigate("http://www.hzctc.cn/AfficheShow/Home?AfficheID=7d220975-619a-41e9-9142-aadf97d346fe&IsInner=0&ModuleID=22")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim elems As object = web.Document.GetElementsByTagName("table")(0).GetElementsByTagName("tr")
Dim ndr As Row
For Each elem As object In elems
    Dim tds = elem.GetElementsByTagName("td")
    ndr = Tables("招标公告").AddNew()
    If tds.Count > 0  AndAlso tds.Count < 3
        'msgbox(tds(0).innerText & ":" & tds(1).innerText)
        ndr("名称") = tds(0).innerText
        ndr("内容") = tds(1).innerText
    End If
    If tds.Count > 3  AndAlso tds.Count < 5
        'msgbox(tds(0).innerText & ":" & tds(1).innerText & ",," & tds(2).innerText & ":" & tds(3).innerText)
        ndr("名称") = tds(0).innerText
        ndr("内容") = tds(1).innerText
        ndr("名称") = tds(2).innerText
        ndr("内容") = tds(3).innerText
    End If
Next


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:招标公告.table





[此贴子已经被作者于2019/2/20 12:53:00编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/2/20 12:23:00 [显示全部帖子]

老师在吗?帮我解决一下31楼的问题,谢谢

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/2/21 13:19:00 [显示全部帖子]

老师你好,搞了几天还是不对,请帮忙解决一下,十分感谢!!!
1、下面代码为什么会少数据(红线下划部份)?如何调整?
2、如何把1、2、3、4等表的数据都提取出来?

Dim web As New System.Windows.Forms.WebBrowser()
web.scripterrorssuppressed = True
web.Navigate("http://www.hzctc.cn/AfficheShow/Home?AfficheID=7d220975-619a-41e9-9142-aadf97d346fe&IsInner=0&ModuleID=22")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim elems As object = web.Document.GetElementsByTagName("table")(0).GetElementsByTagName("tr")
Dim ndr As Row
For Each elem As object In elems
    Dim tds = elem.GetElementsByTagName("td")
    ndr = Tables("招标公告").AddNew()
    If tds.Count > 0  AndAlso tds.Count < 3
        'msgbox(tds(0).innerText & ":" & tds(1).innerText)
        ndr("名称") = tds(0).innerText
        ndr("内容") = tds(1).innerText
    End If
    If tds.Count > 3  AndAlso tds.Count < 5
        'msgbox(tds(0).innerText & ":" & tds(1).innerText & ",," & tds(2).innerText & ":" & tds(3).innerText)        '这个显示出来的数据是对的,如何增加到“招标公告”表中去
        ndr("名称") = tds(0).innerText
        ndr("内容") = tds(1).innerText
        ndr("名称") = tds(2).innerText
        ndr("内容") = tds(3).innerText
    End If
Next


此主题相关图片如下:20192202111290390.png
按此在新窗口浏览图片

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:招标公告 (1).table





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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/2/21 14:11:00 [显示全部帖子]

有点蓝老师现在的问题是下面代码如何实现?
 msgbox(tds(0).innerText & ":" & tds(1).innerText & ",," & tds(2).innerText & ":" & tds(3).innerText)        '这个显示出来的数据是对的,如何增加到“招标公告”表中去
        ndr("名称") = tds(0).innerText
        ndr("内容") = tds(1).innerText
        ndr("名称") = tds(2).innerText
        ndr("内容") = tds(3).innerText


此主题相关图片如下:不规则的表.png
按此在新窗口浏览图片


此主题相关图片如下:代码1.png
按此在新窗口浏览图片


[此贴子已经被作者于2019/2/21 14:11:40编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/2/21 14:41:00 [显示全部帖子]

不是这样, 把数据导入到下表中:



图片点击可在新窗口打开查看此主题相关图片如下:不规则的表.png
图片点击可在新窗口打开查看


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


[此贴子已经被作者于2019/2/21 14:48:23编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/2/21 15:23:00 [显示全部帖子]

还是不对,下面这段代码如何调整?绿色框中的数据如何导入?

Dim web As New System.Windows.Forms.WebBrowser()
web.scripterrorssuppressed = True
web.Navigate("http://www.hzctc.cn/AfficheShow/Home?AfficheID=7d220975-619a-41e9-9142-aadf97d346fe&IsInner=0&ModuleID=22")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim elems As object = web.Document.GetElementsByTagName("table")(0).GetElementsByTagName("tr")
Dim ndr As Row
For Each elem As object In elems
    Dim tds = elem.GetElementsByTagName("td")
    ndr = Tables("招标公告").AddNew()
    'If tds.Count > 0  AndAlso tds.Count < 3
        'msgbox(tds(0).innerText & ":" & tds(1).innerText)
        ndr("名称") = tds(0).innerText
        ndr("内容") = tds(1).innerText
    'End If
    'If tds.Count > 3  AndAlso tds.Count < 5
        ''msgbox(tds(0).innerText & ":" & tds(1).innerText & ",," & tds(2).innerText & ":" & tds(3).innerText)
        'ndr("名称") = tds(0).innerText
        'ndr("内容") = tds(1).innerText
        'ndr("名称") = tds(2).innerText
        'ndr("内容") = tds(3).innerText
    'End If
Next


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

[此贴子已经被作者于2019/2/21 15:23:42编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2019/2/21 17:16:00 [显示全部帖子]

终于解决!

Dim web As New System.Windows.Forms.WebBrowser()
web.scripterrorssuppressed = True
web.Navigate("http://www.hzctc.cn/AfficheShow/Home?AfficheID=8aa69acf-37e7-4500-b427-25925d1c4b54&IsInner=0&ModuleID=22")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
For n As Integer = 0 To 1
    Dim elems As object = web.Document.GetElementsByTagName("table")(n).GetElementsByTagName("tr")
    Dim ndr As Row
    For Each elem As object In elems
        Dim tds = elem.GetElementsByTagName("td")
        If tds.Count > 0  AndAlso tds.Count < 3
            ndr = Tables("招标公告").AddNew()
            ndr("名称") = tds(0).innerText
            ndr("内容") = tds(1).innerText
        End If
        If tds.Count > 3  AndAlso tds.Count < 5
            ndr = Tables("招标公告").AddNew()
            ndr("名称") = tds(0).innerText
            ndr("内容") = tds(1).innerText
            ndr = Tables("招标公告").AddNew()
            ndr("名称") = tds(2).innerText
            ndr("内容") = tds(3).innerText
        End If
    Next
Next

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