vba抓取网页数据

news2024/11/19 22:52:46

哈喽,哈喽,大家好!大家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的格式,那类似这样的数该怎么去解析呢?关注我,以后给大家慢慢讲。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【BCC动态跟踪PostgreSQL】

BPF Compiler Collection (BCC)是基于eBPF的Linux内核分析、跟踪、网络监控工具。其源码存放于GitCode - 开发者的代码家园 想要监控PostgreSQL数据库的相关SQL需要在编译PostgreSQL的时候开启dtrace。下文主要介绍几个和PostgreSQL相关的工具,其他工具可根据需求自行了解。 …

ChatGPT 进行 SEO的使用技巧

搜索引擎优化 (SEO) 是使网站对搜索引擎友好的一种不断发展的实践。 自搜索引擎和新兴技术的发展以来,它从未保持不变。 最近发布的 ChatGPT 是一种人工智能对话工具,似乎在搜索引擎优化方面有很好的应用。 从创建吸引人的标题到只需一个简短的提示就可…

Latex宏包gbt7714的格式问题:去掉OL

问题 采用bibtex来格式化文献,文献的格式采用gbt7714宏包来格式化。感谢宏包的作者和一种贡献者,效果非常好,用起来也很方便。 唯一一个我自己的问题,看不得文献索引后面[J/OL]中的OL。 网上搜索一圈,有一些办法&am…

echarts点击柱子、线节点、横坐标标签

echarts点击柱子、线节点、横坐标标签 x轴标签要为标签文字添加点击事件,必须先在xAxis里设置响应事件 xAxis: {triggerEvent: true, },然后直接监听 thisChart.on("click" ,function (params) {console.log(params) });通过params.componentSubType来…

三、C语言中的分支与循环—break和continue语句(8)循环结构 完

本章分支结构的学习内容如下: 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句(4)分支结构 完 本章循环结构的…

720VR全景通微信小程序商业运营版+多用户+云储存+大图切图效率高+完整的代码包以及搭建教程 功能强大

随着科技的飞速发展,虚拟现实技术已经逐渐融入我们的日常生活。其中,720VR全景技术以其独特的视角和沉浸式体验,受到了广泛的关注和应用。为了满足市场需求,春哥团队推出了720VR全景通微信小程序商业运营版,集多用户、…

基于PI控制的PMSM永磁同步电机控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PMSM数学模型 4.2 矢量控制策略 4.3 PI控制器设计 4.4 控制系统实现 5.完整工程文件 1.课题概述 基于PI控制的PMSM永磁同步电机控制系统simulink建模与仿真。其中,基于PI(…

使用UDP和JSON在C#中高效发送结构体数据

使用UDP和JSON在C#中高效发送结构体数据 引言 在许多网络编程场景中,我们经常需要在不同的应用程序或服务之间发送和接收数据。UDP(用户数据报协议)因其低延迟和少开销的特点,在需要快速数据传输的场景中非常有用。本文介绍了如何…

【FPGA/verilog -入门学习15】vivado FPGA 数码管显示

1,需求:使用xc720 开发板的8个数码管显示12345678 2,需求分析: 75hc595 1,74hc595驱动,将串行数据转换成并行输出。对应研究手册 2,发送之前将要发的数据,合并成高8位:SEG,低8位&…

【算法】利用分治思想解算法题:快排、归并、快速选择实战(C++)

1. 分治思想 介绍 分治法将问题划分成多个相互独立且相同或类似的子问题,然后递归地解决每个子问题,并将结果合并以得到原始问题的解。 分治思想通常包含以下三个步骤: 分解:将原始问题划分成多个规模较小、相互独立且类似的子…

如何恢复 iPhone 上永久删除的照片?

2007年,苹果公司推出了一款惊天动地的智能手机,也就是后来的iPhone。你会惊讶地发现,迄今为止,苹果公司已经售出了 7 亿部 iPhone 设备。根据最新一项调查数据,智能手机利润的 95% 都进了苹果公司的腰包。 如此受欢迎…

用户管理第2节课--idea 2023.2 后端--实现基本数据库操作(操作user表) -- 自动生成 --【本人】

一、插件安装 1.1 搜索插件 mybatis 安装 1.2 接受安装 1.3 再次进入,说明安装好了 1.4 与鱼皮不同点 1)mybatis 版本不一致 鱼皮: 本人: 2)鱼皮需重启安装 本人不需要 1.5 【需完成 三、步骤,再来看】 …

webpack 5 loader

webpack 本身不能识别js&#xff0c;json外的资源&#xff0c;所以我们需要借助其他loader来处理对应的文件 CSS Loader&#xff0c;处理css 安装 npm i css-loader style-loader -D css-loader 负责讲css编译成webpack能识别的模块内容style-loader 动态创建<style&g…

SQL之CASE WHEN用法详解

目录 一、简单CASE WHEN函数&#xff1a;二、CASE WHEN条件表达式函数三、常用场景 场景1&#xff1a;不同状态展示为不同的值场景2&#xff1a;统计不同状态下的值场景3&#xff1a;配合聚合函数做统计场景4&#xff1a;CASE WHEN中使用子查询场景5&#xff1a;经典行转列&am…

【PTA-C语言】实验八-函数与指针II

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 目录——实验八-函数与指针II 6-1 移动字母&#xff08;分数 10&#xff09;6-2 删除字符&#xff08;分数 10&#xff09;6-3 函数实现字符串逆序&#xff08;分数 10&#xff09;6-4 递归计算Ackermenn函数…

CTFshow web入门web127-php特性30

开启环境: extract() 函数从数组中将变量导入到当前的符号表&#xff0c;使用数组键名作为变量名&#xff0c;使用数组键值作为变量值 举例就是?a2&#xff0c;就会变成$a2&#xff0c;这里ctf_show有个_需要构造&#xff0c;前面说过php中变量名只有数字字母下划线&#xff…

BIND-DNS配置介绍

一、主要配置文件 /etc/named.conf options { //Option 段全部配置 listen-on port 53 { 127.0.0.1; };//表示BIND将在53端口监听&#xff0c;若需要对所有IP进行监听&#xff0c;则修改为// listen-on port 53 { any; }; directory "/var/named"…

WPF+Halcon 培训项目实战(11):HS组件封装

文章目录 前言相关链接项目专栏运行环境匹配图片封装组件新增类库项目选择依赖顺序并添加Nuget修改原本矩形方法运行结果&#xff1a; 对矩形进行抽象封装抽象基类矩形抽象改造 圆形抽象封装代码运行结果 前言 为了更好地去学习WPFHalcon&#xff0c;我决定去报个班学一下。原…

leetcode2487.从链表中移除节点

文章目录 题目思路复杂度Code 题目 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 1&#xff1a; 输入&#xff1a;head [5,2,13,3,8] 输出&#xff1a;[13,8] 解释&#xff1a;需要移除的节点是 5 &#xff0…

1.2作业

温湿度数据通过中断处理显示到数码管中 main.c #include "spi.h"#include"si7006.h"int main(){int i0,j0,m0,n0;int num[10] {0xFC,0x60,0xDA,0xF2,0x66,0xB6,0x3E,0xE0,0xFE,0xF6};SPI_init();unsigned short hum;short tem;//进行si7006的初始化si700…