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


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

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

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/20 21:21:00 [显示全部帖子]

参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=49278

浏览器打开网页,按f12打开开发工具,自己分析网页结构


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


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/20 22:29:00 [显示全部帖子]

Dim elems As object = web.Document.GetElementsById("Table1").GetElementsByTagName("tr")

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/20 22:44:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/21 8:53:00 [显示全部帖子]

没有时间去帮你们分析网页,自食其力

所有getelementbyid、GetElementsByTagName这些方法返回的对象都先判断一下是否是空值,或者是空数组

dim obj  = Document.getelementbyid("Table1")
if obj isnot nothing then
    dim trs = obj.GetElementsByTagName("tr")
   if trs.length > 0 then
 其它处理
   end if
end if

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/16 21:47:00 [显示全部帖子]

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

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/16 22:15:00 [显示全部帖子]

elems = web.Document.GetElementById("Table1").GetElementsByTagName("th")
For i As Integer = 0 To elems.count-1
    msgbox(elems (i).InnerText)
Next

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/20 13:57: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
Output.Show( web.Document.Body.OuterHtml)

请自行分析网页内容,看需要的数据是在哪个标签里面的,根据对应的标签提取数据

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/21 13:55:00 [显示全部帖子]

分析如果标签的内容(标题)属于1表的数据,就在1表新增行并赋值,如此类推,比如

web.Document.GetElementsByTagName("table")(0)是第一个表格,那么web.Document.GetElementsByTagName("table")(1)就是第二个表格

我这边运行半天打开的是一个空网页。也没有这个时间去帮您分析别人的网页,请自食其力。或者看看其他版主有没有时间帮您看看

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/21 14:16:00 [显示全部帖子]

这个意思?

ndr(tds(0).innerText) = tds(1).innerText

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/21 14:46:00 [显示全部帖子]

ndr = Tables("招标公告").AddNew()
        ndr("名称") = tds(0).innerText
        ndr("内容") = tds(1).innerText
ndr = Tables("招标公告").AddNew()
        ndr("名称") = tds(2).innerText
        ndr("内容") = tds(3).innerText

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