ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8629|回复: 44

[求助] 把网址里的每页(蓝色字链接的)依次点开复制里面的正文到Word文档上

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-7-16 08:41 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
http://www.tcm100.com/user/hxsjshl/
那位前辈有办法编写一个这样的宏,求赐教!谢谢!

TA的精华主题

TA的得分主题

发表于 2016-7-16 11:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-7-16 13:01 | 显示全部楼层
本帖最后由 duquancai 于 2016-7-19 05:58 编辑

请你测试:

Sub WordVBA网抓()
    Dim strText$, t$, t1$, t2$, t3$, RegMatch, i%
    Application.ScreenUpdating = False
    With CreateObject("msxml2.xmlhttp")
        For i = 2 To 395
            .Open "GET", "http://www.tcm100.com/user/hxsjshl/zzbook" & i & ".htm", False
            .send
            Do While .readyState <> 4
                DoEvents
            Loop
            strText = strText + .responseText
        Next
    End With
    With CreateObject("VBScript.Regexp")
        .Global = True
        .Pattern = "<td[\s\S]*?<div\s*class='title'[\s\S]*?>([\s\S]+?)</div>[\s\S]*?<div\s*class='title'>([\s\S]+?)</div>[\s\S]*?<div\s* class='content'>([\s\S]+?)</div>[\s\S]*?</td>"
        For Each RegMatch In .Execute(strText)
            t1 = RegMatch.SubMatches(0)
            t2 = RegMatch.SubMatches(1)
            t3 = RegMatch.SubMatches(2)
            t = t & t1 & Chr(13) & t2 & Chr(13) & t3 & Chr(13)
        Next
        .Pattern = "(?:<a\s*href=[\s\S]+?>)|</a>": t = .Replace(t, "")
        .Pattern = "(?!<br>)(?:&nbsp;)+": t = .Replace(t, "  ")
        .Pattern = "<br>\s+": t = .Replace(t, Chr(13))
    End With
    Application.ScreenUpdating = True
    Documents.Add.Content.Text = t
End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-16 14:25 | 显示全部楼层
本帖最后由 13907933959 于 2016-7-16 14:35 编辑

前辈好!
感谢指点,真是个好帖子,可是在下水平未到,一二下还学不来,能不能劳前辈写一个,在下将万分感谢!

TA的精华主题

TA的得分主题

发表于 2016-7-16 14:44 | 显示全部楼层
本帖最后由 duquancai 于 2016-7-16 14:49 编辑
13907933959 发表于 2016-7-16 14:25
前辈好!
感谢指点,真是个好帖子,可是在下水平未到,一二下还学不来,能不能劳前辈写一个,在下将万分 ...

已经在你楼上,我写了一个。你测试一下看看是否满足你的需求?怎么修改一次就需要审核啊!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-16 15:02 | 显示全部楼层
duquancai 发表于 2016-7-16 14:44
已经在你楼上,我写了一个。你测试一下看看是否满足你的需求?怎么修改一次就需要审核啊!!!!

前辈好!
抱歉、抱歉、刚才没注意,请您见谅!
刚测试了,用了不到一分钟就OK了,正是我想要的。真是“山外有山,天外有天”,让在下仰慕!
感谢前辈的出手相助!在下拜谢!下次再有问题恳请前辈再赐教!谢谢!

TA的精华主题

TA的得分主题

发表于 2016-7-16 15:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 duquancai 于 2016-7-16 15:26 编辑
13907933959 发表于 2016-7-16 15:02
前辈好!
抱歉、抱歉、刚才没注意,请您见谅!
刚测试了,用了不到一分钟就OK了,正是我想要的。真是“ ...

看你抓取的是“医学”方面的资料,你钻研医学是造福人类!因此我写个代码帮助节约时间以便你抽出更多的时间来钻研医学而帮助别人的病痛!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-16 15:45 | 显示全部楼层
duquancai 发表于 2016-7-16 15:24
看你抓取的是“医学”方面的资料,你钻研医学是造福人类!因此我写个代码帮助节约时间以便你抽出更多的时 ...

前辈好!
是的、我是个学中医的,读了几年的中医、前年刚毕业,去年刚跟一个师傅在度师,有前辈鼓励一定努力。前辈不但学艺精,还有一颗仁慈的心,如学医也一定是一个大医家!再次感谢前辈!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-18 10:43 | 显示全部楼层
duquancai 发表于 2016-7-16 13:01
请你测试:

Sub Main()

前辈好!
因前天的代码未收藏,今天再复制粘贴3楼的代码用不了,不面这行代码在代码窗口显示红色。
.Pattern = "(?:<a\s*href=[\s\S]+?>)|</a>|<br>": t = .Replace(t, "")        .Pattern = "(&nbsp;)+": t = .Replace(t, Chr(13))
劳请前辈再看看,谢谢!另外、再外行的问一下前辈,如再要抓取其它类似网站的文字,是不是更换一下网址即可?

TA的精华主题

TA的得分主题

发表于 2016-7-18 20:44 | 显示全部楼层
本帖最后由 duquancai 于 2016-7-18 20:50 编辑
13907933959 发表于 2016-7-18 10:43
前辈好!
因前天的代码未收藏,今天再复制粘贴3楼的代码用不了,不面这行代码在代码窗口显示红色。
.Pa ...

那是因为我在VBE中粘贴到论坛时候,换换引起的语法问题。我重新再修改了!审核通过后你在试一试吧!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 22:35 , Processed in 0.024878 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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