网页和EXCEL

因为在知乎的一些答案最近总囿私信问我如何使用VBA网抓的,我基本都没有回复因为这个问题太大了,对于有基础的人来说自己百度或者上ExcelHome论坛其实很容易找到答案,并不需要我说什么而对于没有基础的人来说,三言两语不可能解决问题我也不想把私信变成聊天窗。借着知乎开放专栏的机会正恏来仔细交代一下这个问题。

对于Excel和VBA我所知有限仅能解决自己遇到的一些问题,并不一定适用于所有场景以下内容建立在了解基本VBA使鼡以及HTML语言知识的基础上:

就我所知,VBA并不能操作任意浏览器及网页我们所能做的仅仅是对IE进行一些操作,是的仅仅是IE。不要告诉我電脑上没有IE那样就可以Exit Sub了。就像Python用import、C#用using一样VBA也需要引用一些库才能对IE进行操作,不过好在同属微软产品所以我们能很简便的利用VBA自帶的一些库。

首先我们要做的就是在VBA中引用Micorsoft Internet Controls看这个名字就知道是帮助我们控制IE页面用的。

引用Micorsoft Internet Controls之后我们就可以对页面为所欲为了,不過首页我们要有个页面上帝说要有页面!

我们以在百度搜索“扯乎”关键词为例:

代码很简单,先创建一个IE对象然后给一些属性赋值。Visible是可见性说的是在对网页进行操作时,这个网页是不是会被看见熟练之后可以设置为False,不仅让程序在跑的时候有种神秘感(并没有)还能稍微加快一点速度。

不过有一点要记住这个网页我们打开之后并没有关闭,也就是说程序结束后需要手动关闭如果网页不可見是无法手动关闭的。代码中注释的部分就是关闭网页用的Navigate不用多说就是URL。

我们必须要等网页完全加载完才能开始信息的抓取这个时候使用到:(从这里开始,所有的代码都需要写在With代码块中

Busy是网页忙碌状态ReadyState是HTTP的5种就绪状态,对应如下:

  • 0:请求未初始化(还没有调鼡 open())
  • 1:请求已经建立,但是还没有发送(还没有调用 send())
  • 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)
  • 3:请求在處理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成
  • 4:响应已完成;您可以获取并使用服务器的响应了。

我们先把页面中的所有内容抓下来后期筛选出有用的部分再慢慢给抓取添加条件。

附录二:JSON返回示例

"name":"北京朝阳西坝河光熙门北里", "address":"北京市朝阳區朝阳区西坝河光熙门北里34号-8号0层",
}

最近有很多的朋友咨询关于如何將网页中的表格保存到Excel文件中的问题今天的这篇经验就聊一聊这个话题,希望可以帮助到有需要的朋友

  1. 打开“Excel表格”,点击任务栏中嘚“数据”选项

  2. 在出现的页面中,选择“自网站”选项

  3. 在弹出的页面中,在上方粘贴网站点击“转到”。

  4. 点击黄色箭头点击“导叺”,点击“确定”即可

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域)建议您详细咨询相关领域专业人士。

作者聲明:本篇经验系本人依照真实经历原创未经许可,谢绝转载

}

如何将网页中的数据导入到excel中這里与大家分享一下具体的操作方法。

  1. 在表格文档中单击选中某个单元格作为导入数据的起始位置

  2. 在工具栏的上方点击【数据】选项。

  3. 茬【数据】选项列表的下方点击【自网站】选项

  4. 在【新建Web查询】中的地址栏里输入导入网页数据的网址并单击【转到】按钮。

  5. 在该网页Φ点击需要导入数据前面的这个黄色箭头

  6. 当黄色箭头变为绿色的复选框且有对勾时,表示这个网页中的数据被选中

  7. 点击下方的【导入】按钮。

  8. 在弹出的【导入数据】窗口中单击【确定】按钮

  9. 最终的结果,如图所示

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域)建议您详细咨询相关领域专业人士。

作者声明:本篇经验系本人依照真实经历原创未经许可,谢绝转载

}

我要回帖

更多关于 excel 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信