排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
VBA网抓数据结果的链接
VBA网抓数据结果的链接
VBA语言専攻
2021-11-26
109
【分享成果,随喜正能量】人的一生,肯定会遭遇各种挫折与挑战,莫大的压力会让你喘不过气。可是,只有真正懂得适时弯腰的人才能得以克服危机,赢得胜利。这不是懦弱,也不是没骨气,而是一种大智慧。强干、蛮干,只会带来不可必要的损失。
《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。
教程共两册,八十四讲。今日的内容是专题六“VBA中利用XMLHTTP完成网抓数据”的第3讲:VBA网抓数据结果的链接
第三节 利用XMLHTTP抓取百度搜索数据结果,给出打开链接
在上一讲中我们实现了利用XMLHTTP的方法抓取了搜索关键词的数据,但是我们在网络查询的时候,往往不仅需要总的数据支持,还需要一些具体的数据,比如:查找到了哪些网址,标题是什么?如果我需要进一步的查看往往要需要打开的链接。这种数据如何抓取呢?这讲我就来实现这个问题。
实现的场景:如下图当我们点击右侧的按钮“利用VBA提取搜索关键词的数据,并给出下载的链接”时能够在下面的数据区域给出查询到的结果。
其实,这种处理也是工作中经常遇到的,可以对于我们浏览的网页进行适当的保存,在需要的时候再详细的查询。特别是把这些数据保存在EXCEL表格中,更让管理条理清晰。那么如何实现这个场景呢?我们仍是利用XMLHTTP来完成我们的工作。
1 应用XMLHTTP实现数据查询并提取网页链接的思路分析
我们先模拟一下直接在网页上查询数据,当我们输入一个数据点击回车的时候,服务器会反馈回数据在我们的浏览器上,我们需要对网页的源代码进行分析,
上面的截图就是我录入“VBA语言专家”点击回车后的在后台看到的源代码,你会发现,所有我们要写入EXCEL表格的信息都出现在了这里。
其中“标题”可以用innerText属性来获得,链接可以用href的属性来获得,真的非常容易,下面我们就要实现把多页查询的结果填到excel表格中,这个时候我们利用发送给服务器时要求头部检查一下查询的时间即可如下代码:.setRequestHeader "If-Modified-Since", "0"
这样就可以实现我们的要求了。
2 应用XMLHTTP实现数据查询并提取网页链接的代码实现过程
下面我们把上面的思路转换为代码,如下所示:
Sub myNZA() '利用VBA提取搜索关键词的数据,并给出下载的链接
【具体见教程】
End Sub
代码截图:
代码讲解:
1) Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
Set objDOM = CreateObject("htmlfile")
上述代码建立了两个引用,一个是XMLHTTP ,一个是htmlfile ,之后将利用这两个引用完成我们的工作。
2)UU = Range("B1").Value 这是我们要查询的关键数据
3)For i = 0 To 50 Step 10 '五页 这是要查询5次利用i作为查询的页码
4) strURL = "https://www.baidu.com/s?"
strURL = strURL & "wd=" & UU
strURL = strURL & "&pn=" & i
上述代码是完成了我们要查询的请求URL。
5) .Open "GET", strURL, False 使用OPEN 方法
6) .setRequestHeader "If-Modified-Since", "0" 请求头部把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较,以保障我们每次请求到的数据是没有重复的。
7) .send 注意请求头部的提交要在此命令之前完成
8)objDOM.body.innerHTML = .responseText '将.responseText内容写入新objDOM对象的body
9) For Each objTitle In objDOM.getElementsByTagName("h3") 在每个H3标签即标题进行遍历操作。注意
到
是标签标题。
定义最大的标题。
定义最小的标题。
10)With objTitle.getElementsByTagName("a")(0) 对于每个属性名称为为“a”的元素
11)Cells(k, 2) = .innerText
Cells(k, 3) = .href
提取标签之间的纯文本信息和链接
12)Set objXMLHTTP = Nothing
Set objDOM = Nothing
Set objTitle = Nothing
回收内存。
3 应用XMLHTTP实现数据查询并提取网页链接的实现效果
我们先来看看当我们点击运行按钮后的实现效果:
此时我们任意点击一个单元格的链接,就会转跳到下面的页面:
从而实现了我们最初的课题要求。
本节知识点回向:如何利用XMLHTTP反馈网页中的关键词的搜索结果和网页的链接?
本讲参考程序文件:006工作表.XLSM
我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序
:
vba
xmlhttp
文章转载自
VBA语言専攻
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨