Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 26987|回复: 45

[已解决]如何将网页里多页的数据导入工作表里

[复制链接]
发表于 2015-5-12 17:10 | 显示全部楼层 |阅读模式

有一个网站,“https:(我没有办法发链接,双//杠省去)gaokao.chsi.com.cn/zzbm/mdgs/detail.action?oid=476733931&lx=1”,该网页下有64页,怎么才能将这64页的数据导入工作中呀。
跪求了,我从网上下载了一堆代码也没有弄好
好心的大虾,帮个忙吧。
最佳答案
2015-5-12 18:27
这个没什么难度,做个全部页码的吧,
数据已经全部抓取完,楼主可以直接拿去用。
  1. Sub test()
  2.     Dim HTML, tb, i&, j&, x&, n&, s$
  3.     [a2:d9999] = ""
  4.     Set HTML = CreateObject("htmlfile")
  5.     With CreateObject("msxml2.xmlhttp")
  6.         For x = 0 To 63
  7.             .Open "get", "https://gaokao.chsi.com.cn/zzbm/mdgs/detail.action?oid=476733931&lx=1&start=" & 30 * x, False
  8.             .Send
  9.             Application.Wait (Now + TimeValue("00:00:02"))
  10.             HTML.body.innerhtml = .responsetext
  11.             Set tb = HTML.ALL.tags("table")(0).Rows
  12.             For i = 1 To tb.Length - 1
  13.                 n = n + 1
  14.                 For j = 0 To tb(i).Cells.Length - 1
  15.                     Cells(n + 1, j + 1) = tb(i).Cells(j).innertext
  16.                 Next
  17.             Next
  18.         Next
  19.     End With
  20.     MsgBox "获取完毕!"
  21. End Sub
复制代码
抓数据.rar (74.03 KB, 下载次数: 903)

评分

参与人数 2 +4 收起 理由
xutao4965705 + 1 赞一个
沐沐 + 3 留个坑,以后翻。网抓

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-5-12 17:41 | 显示全部楼层
本帖最后由 Excel学徒123 于 2015-5-12 17:44 编辑
  1. Declare Function GetTickCount Lib "kernel32" () As Long

  2. '‘http://117.21.249.37:9090/yzcg/jxyycg/search/bidCatalog.shtml?dypn=1
  3.     Sub tttt()
  4.         Dim HTML, URL, K, X, No
  5.         Cells.Clear
  6.         Application.ScreenUpdating = False
  7.         Application.Calculation = xlCalculationManual
  8.         Set HTML = CreateObject("htmlfile")
  9.         K = 1
  10.         No = 64    '总页数
  11.         
  12.         ParShow.Show 0    '进度条窗口显示
  13.         With CreateObject("msxml2.xmlhttp")
  14.         For X = 0 To No
  15.         
  16.         URL = "https://gaokao.chsi.com.cn/zzbm/mdgs/detail.action?oid=476733931&lx=1&start=" & X
  17.         
  18.             .Open "get", URL, False
  19.             .Send
  20.             DelayTime (2000)      '延时,网速不好改大
  21.             HTML.body.innerhtml = .responsetext
  22.             Set tb = HTML.ALL.tags("tbody")(0)
  23.             For I = 1 To tb.Rows.Length - 1
  24.                 For j = 0 To tb.Rows.Item(I).Cells.Length - 1
  25.                     Cells(I + K, j + 1) = tb.Rows(I).Cells(j).innertext
  26.                 Next
  27.             Next

  28.         K = K + tb.Rows.Length - 1
  29.         Set tb = Nothing
  30.         ParShow.LblNote.Caption = "正在抓取第" & X & "页!!"
  31.         ParShow.lblProgress.Width = Int((X / No) * ParShow.lblBack.Width) '标签宽度
  32.         ParShow.lblPercent.Caption = Format(Int((X / No) * 100), "0") & "%" '完成百分比
  33.         'ParShow.Repaint                                             '窗体重绘
  34.         DoEvents
  35.         
  36.         Next X
  37.         Application.Calculation = xlCalculationAutomatic
  38.         Application.ScreenUpdating = True

  39.         Set tb = Nothing
  40.         Unload ParShow
  41.         MsgBox "数据抓取完成!"
  42.          End With
  43.     End Sub

  44. Sub DelayTime(DTime As Long)        '延时

  45.     SaveTime = GetTickCount
  46.     While GetTickCount < SaveTime + DTime '等待1S
  47.         DoEvents
  48.     Wend
  49. End Sub
复制代码
下载我的附件吧,有进度条,直接复制代码要报错,具体结果 你检查下{:02:}

网络数据抓取.rar

59.61 KB, 下载次数: 671

评分

参与人数 4 +55 金币 +40 收起 理由
悠悠05 + 9 很给力
759857387 + 6 学习进度条
雪舞子 + 20 + 20 进度条都做出来了,厉害!
橘子红 + 20 + 20 熊猫威武霸气

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-5-12 17:55 | 显示全部楼层
回复

使用道具 举报

发表于 2015-5-12 17:59 | 显示全部楼层
  1. Sub test()
  2. Dim ie As New InternetExplorer
  3. Dim i As Long
  4. Dim doc As HTMLDocument
  5. Dim tb As HTMLTable

  6. For i = 0 To 1
  7. ie.navigate "https://gaokao.chsi.com.cn/zzbm/mdgs/detail.action?oid=476733931&lx=1&start=" & i * 30
  8.     Do Until ie.readyState = READYSTATE_COMPLETE
  9.         DoEvents
  10.     Loop

  11.     Set doc = ie.document
  12.     Sheet1.Range("A1").Offset(i * 30, 0).Select

  13.     Set tb = doc.getElementById("YKTabCon2_10")
  14.         For j = 1 To 30
  15.             For k = 1 To 4
  16.                 Sheet1.Cells(j, k) = tb.Cells((j - 1) * 4 + k - 1).innerText
  17.             Next
  18.         Next

  19. Next
  20. End Sub
复制代码
还有点小问题,应该加一个延时的时间,等加载完毕后再执行。没时间弄了,下班先。
测试.rar (8.18 KB, 下载次数: 126)

评分

参与人数 1 +1 收起 理由
zhusong19989 + 1 话说,你是我的亲!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-5-12 18:05 | 显示全部楼层
Excel学徒123 发表于 2015-5-12 17:41
下载我的附件吧,有进度条,直接复制代码要报错,具体结果 你检查下

太棒了,太棒了!
{:1112:}

我这个网址是从“https:(省去双//)gaokao.chsi.com.cn/zzbm/mdgs/”里来的

有办法一次把这个页面的所有高校的都导入工作表吗?

哈哈,我是得寸进尺呀。
回复

使用道具 举报

发表于 2015-5-12 18:08 | 显示全部楼层
zhusong19989 发表于 2015-5-12 18:05
太棒了,太棒了!

那些高校代码参数必须获知才能处理的。
回复

使用道具 举报

 楼主| 发表于 2015-5-12 18:23 | 显示全部楼层
roych 发表于 2015-5-12 17:59
还有点小问题,应该加一个延时的时间,等加载完毕后再执行。没时间弄了,下班先。

导出的数据不全,漏的多,重复的多,不知道问题出在哪儿了?
回复

使用道具 举报

 楼主| 发表于 2015-5-12 18:24 | 显示全部楼层
roych 发表于 2015-5-12 18:08
那些高校代码参数必须获知才能处理的。

好的,我一个一个弄吧,这样快多了。

我是否只需要改动网址及页数即可吧。
回复

使用道具 举报

发表于 2015-5-12 18:27 | 显示全部楼层    本楼为最佳答案   
这个没什么难度,做个全部页码的吧,
数据已经全部抓取完,楼主可以直接拿去用。
  1. Sub test()
  2.     Dim HTML, tb, i&, j&, x&, n&, s$
  3.     [a2:d9999] = ""
  4.     Set HTML = CreateObject("htmlfile")
  5.     With CreateObject("msxml2.xmlhttp")
  6.         For x = 0 To 63
  7.             .Open "get", "https://gaokao.chsi.com.cn/zzbm/mdgs/detail.action?oid=476733931&lx=1&start=" & 30 * x, False
  8.             .Send
  9.             Application.Wait (Now + TimeValue("00:00:02"))
  10.             HTML.body.innerhtml = .responsetext
  11.             Set tb = HTML.ALL.tags("table")(0).Rows
  12.             For i = 1 To tb.Length - 1
  13.                 n = n + 1
  14.                 For j = 0 To tb(i).Cells.Length - 1
  15.                     Cells(n + 1, j + 1) = tb(i).Cells(j).innertext
  16.                 Next
  17.             Next
  18.         Next
  19.     End With
  20.     MsgBox "获取完毕!"
  21. End Sub
复制代码
抓数据.rar (74.03 KB, 下载次数: 903)

评分

参与人数 1 +1 收起 理由
zhusong19989 + 1 点10086个赞!

查看全部评分

回复

使用道具 举报

发表于 2015-5-12 19:44 | 显示全部楼层
雪舞子 发表于 2015-5-12 18:27
这个没什么难度,做个全部页码的吧,
数据已经全部抓取完,楼主可以直接拿去用。

我也是改之前一个写好的。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 14:29 , Processed in 0.352841 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表