vba抓取网页数据

哈喽,哈喽,大家好!大家2024发大财啦!

不知道,平时大家爱不爱看电影呢?从今年的贺岁档的拍片来看,今年的电影还挺多,而且国产优秀电影居多,元旦假期期间我也去看了部喜剧片,应该说在2023的年度还能看到一部优秀的国产喜剧片,还是挺开心的。大家看到这里是不是觉得走错频道了?难道我要来讲电影了?不,我们今天来讲讲怎么抓取网页上的数据。

既然,我们要讲抓取数据,那我们就需要找一个网站来测试,刚好,豆瓣也是平时我比较爱逛的一个网站,那我们就来爬一下电影的数据,这里我们不可以爬所有电影的数据,刚好豆瓣有一个榜单,叫豆瓣电影TOP250,那我们就来把上面的数据都取下来。

01、查看网页

这次我们先不急着上手操作,我们先来看一下网站:豆瓣电影 Top 250

打开后,我们按一下F12,查看一下网站的源码

在这里我们可以看到相应的电影名,我们一个个往下去找的话,其他的电影名称也都是这个span中,至于这个span元素是什么意思,这个可以大家去查找一个,这里我们就不多说了。接着往下看的话,我们可以看到这个span中class都是“Title”,那按照这个发现,我们就可以来写代码了。

02、建表

我们先在access当中创建一个表,如下图:

这里,我们先取电影名称与评分,后期有时间,我们可以来完善一下,抓取电影的简介、导演、演员等信息。

03、创建窗体

接着,我们创建窗体,我们将表做成一个明细子窗体,在窗体上放一个按钮。

04、添加代码

最后,我们就可以来添加代码了,注意,这里需要引用一下"Microsoft HTML Object Library"


Private Sub Command0_Click()
    ' 设置要抓取的豆瓣电影页面
    Dim strSQL As String
    Dim rst As DAO.Recordset
    Dim url As String
    url = "https://movie.douban.com/top250"
    
    ' 创建一个 HTTP 对象
    Dim http As Object
    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
    
'    ' 发送 HTTP 请求
'    http.Open "GET", url, False
'    http.Send
   
    Dim html As New MSHTML.HTMLDocument
    
    Dim gCount As Long
    Dim p As Long
 
    gCount = 250
    For p = 0 To gCount - 1 Step 25
        url = "https://movie.douban.com/top250?start=" & p
'        Debug.Print url
        http.Open "GET", url, False
        http.Send
        html.body.innerHTML = http.ResponseText
        Dim i As Long
        For i = 0 To html.getElementsByClassName("hd").length - 1
            Set rst = CurrentDb.OpenRecordset("T_豆瓣电影TOP250")
            rst.AddNew
            rst!电影名称 = html.getElementsByClassName("hd")(i).innerText
            rst!评分 = html.getElementsByClassName("rating_num")(i).innerText
            rst.Update
            
        Next i
    Next p
    MsgBox "抓取成功。", vbInformation
    Me.Child1.Requery
End Sub

代码比较简单,其实就是用getElementsByClassName()方法,找到相应的类名,然后把相应的数据取过来。

05、运行测试

最后,我们就可以运行测试一下了,这里我们可以看到250条数据都取到了。

这里抓取数据,我们是利用网页上的元素,那有些网页是以Json的格式,那类似这样的数该怎么去解析呢?关注我,以后给大家慢慢讲。

好了,大家可以去试一下了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/285865.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据库原理】(4)数据模型介绍

在数据库中,数据不仅包含数据本身的内容,还包括数据之间的关系。这是因为计算机无法直接处理现实世界中的具体事物,因此必须将这些事物抽象成数据模型,以便计算机处理。 数据处理的三个领域 数据从现实世界到数据库里的具体表示…

【C++学习】:命名空间、输入输出和缺省参数全面解析

🎥 屿小夏 : 个人主页 🔥个人专栏 : C入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. 命名空间1.1 为什么需要命名空间?1.2 命名空间的定义1.3 命名空间特性1…

3个值得推荐的WPF UI组件库

WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能,让开发者可以创建出吸引人且交互性强的应用程序。 HandyControl HandyControl是一套WPF控件库&…

图像分割实战-系列教程9:U2NET显著性检测实战1

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 U2NET显著性检测实战1 1、任务概述

如何本地快速部署Apache服务器并使用内网穿透工具实现公网访问内网服务

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…

深度学习|2.4 梯度下降

如上图, J ( w , b ) J(w,b) J(w,b)是由w和b两个参数共同控制的损失函数,损失是不好的东西,所以应该求取合适的w和b使得损失最小化。 为了简单考虑,可以先忽略参数b。 斜率可以理解成在朝着x正方向移动单位距离所形成的损失值的变…

【Linux驱动】设备树模型的LED驱动 | 查询方式的按键驱动

🐱作者:一只大喵咪1201 🐱专栏:《Linux驱动》 🔥格言:你只管努力,剩下的交给时间! 目录 🍮设备树模型的LED驱动🍩设备树文件🍩驱动程序 &#x1…

【数据结构】树的遍历

树的遍历 前序遍历 前序遍历是按照根节点->左子树->右子树的顺序进行遍历 图片来源维基百科深度优先遍历(前序遍历): F, B, A, D, C, E, G, I, H. 代码实现 递归 # class TreeNode: # def __init__(self, x): # self.val x # …

[笔记] GICv3/v4 ITS 与 LPI

0. 写在前面 由于移植一个 pcie 设备驱动时,需要处理该 pcie 设备的 msi 中断(message signaled interrup)。 在 ARM 中, ARM 建议 msi 中断实现方式为: pcie 设备往 cpu 的一段特殊内存(寄存器)写某一个值&#xff0…

浅析xxl-obj分布式任务调度平台RCE漏洞

文章目录 前言本地环境搭建1、初始化数据库2、搭建调度中心3、搭建出执行器 XXL-JOB漏洞1、后台弱口令->RCE2、未授权API->RCE3、默认accessToken4、CVE-2022-361575、SSRF漏洞->RCE 总结 前言 在日常开发中,经常会用定时任务执行某些不紧急又非常重要的事…

c# 捕获全部线程的异常 试验

1.概要 捕获全部线程的异常 试验,最终结果task的异常没有找到捕获方法 2.代码 2.1.试验1 2.1.1 试验结果 2.2 代码 2.2.1主程序代码 using NLog; using System; using System.Threading; using System.Windows.Forms;namespace 异常监控 {static class Program…

【C#】知识点实践序列之Lock简单解决并发引起数据重复问题

欢迎来到《小5讲堂之知识点实践序列》文章,大家好,我是全栈小5。 这是2023年第3篇文章,此篇文章是C#知识点实践序列文章,博主能力有限,理解水平有限,若有不对之处望指正! 本篇在Lock锁定代码块基…

主浏览器优化之路2——Edge浏览器的卸载与旧版本的重新安装

Edge浏览器的卸载与旧版本的重新安装 引言开整寻找最年轻的她开始卸载原本的Edge工具下载后新版本的安装 结尾 引言 (这个前奏有点长,但是其中有一些我的思考顿悟与标题的由来,望耐心) 我在思考这个系列的时候 最让我陷入困得是…

python 深度学习 记录遇到的报错问题10

本篇继python 深度学习 解决遇到的报错问题9_module d2l.torch has no attribute train_ch3-CSDN博客 一、CUDA error: no kernel image is available for execution on the device CUDA kernel errors might be asynchronously reported at some other API call,so the stackt…

架构设计的核心:从多个维度理论分析

文章目录 一、如何实现高内聚低耦合的架构1、确定边界2、内聚的分类3、耦合的分类4、如何实现高内聚低耦合(1)耦合关注点(2)低耦合原则(3)高内聚原则 二、如何实现可扩展性的架构1、扩展性:核心…

机器人活动区域 - 华为OD统一考试

OD统一考试 题解: Java / Python / C++ 题目描述 现有一个机器人,可放置于 M x N 的网格中任意位置,每个网格包含一个非负整数编号,当相邻网格的数字编号差值的绝对值小于等于 1 时机器人可以在网格间移动。 问题: 求机器人可活动的最大范围对应的网格点数目。 说明: 网格…

G-LAB|2024年1月份最新的开班计划

1🈷最新的开班计划 👇👇👇 思科华为HCIA、HCIP、红帽RHCE 可预约免费试听

C#/.NET/.NET Core推荐学习书籍(23年12月更新)

前言 古人云:“书中自有黄金屋,书中自有颜如玉”,说明了书籍的重要性。作为程序员,我们需要不断学习以提升自己的核心竞争力。以下是一些优秀的C#/.NET/.NET Core相关学习书籍,值得.NET开发者们学习和专研。书籍已分类…

微服务智慧工地信息化解决方案(IOT云平台源码)

智慧工地是指应用智能技术和互联网手段对施工现场进行管理和监控的一种工地管理模式。它利用传感器、监控摄像头、人工智能、大数据等技术,实现对施工现场的实时监测、数据分析和智能决策,以提高工地的安全性、效率和质量。 智慧工地平台是一种智慧型、系…

Linux 详解:最完整的入门指南

Linux 是当今最流行的操作系统,仅次于 Windows 和 MacOS。这个开源系统是免费的,在可靠性、安全性和灵活性方面有着悠久的历史。 由于Linux存在于许多设备中并带来了许多优势,因此了解它是什么以及它如何影响计算机行业是至关重要的。 本文…