首页 > 其他分享 >vba抓取数据

vba抓取数据

时间:2024-01-02 15:34:39浏览次数:34  
标签:Dim vba http 电影 抓取 rst 数据 我们

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

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

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

01、查看网页

这次我们先不急着上手操作,我们先来看一下网站:https://movie.douban.com/top250

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

vba抓取数据_vba

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

02、建表

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

vba抓取数据_运行测试_02

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

03、创建窗体

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

vba抓取数据_vba_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条数据都取到了。

vba抓取数据_运行测试_04

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


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


标签:Dim,vba,http,电影,抓取,rst,数据,我们
From: https://blog.51cto.com/willmiao/9070159

相关文章

  • 数据光端机与RS-485信号转换技术的实践与应用
    数据光端机与RS-485信号转换技术的实践与应用在数字化和自动化的浪潮中,数据光端机和RS-485信号转换技术以其独特的优势,正成为工业通信领域的重要支柱。它们如同技术世界中的“金线银针”,精密地连接着现代工业系统的每一个节点。数据光端机主要用于将电信号转换为光信号,实现远距离的......
  • 《中国人民银行业务领域数据安全管理办法》与个人信息保护关键技术研究 | 京东云技术
    在大数据环境下,通过个人用户网络活动产生的数据,可以清晰地分析出用户的年龄、职业、行为规律和兴趣爱好。特别是随着电子商务和移动网络的应用和普及,个人用户的地址、联系方式和银行账户信息也可以通过大数据挖掘或网络爬虫等手段获取。因此,个人信息安全管理压力增大,用户个人信息泄......
  • 数据库安全防护,如何有效避免入侵
    最近很多小伙伴都反应自己的数据库遭到了不同程序的入侵,轻者被篡改数据,重者数据被全部删除,甚至还出现了勒索的现象,那么数据库攻击都有哪些,我们该如何预防数据库被入侵呢?首先,数据库是指长期存储在计算机内有组织可共享的数据集合。它是一个长期存储在计算机内的、有组织的、可共享的......
  • Android期末大作业:使用AndroidStudio开发图书管理系统APP(使用sqlite数据库)
    AndroidStudio开发项目图书管理系统项目视频展示:引言现在是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴求更是与日俱增。图书馆作为学生学习知识的重要场所,作为信息资源的集散地,图书和用户借阅资......
  • 解决-HTTPSConnectionPool-超时问题与-NBA-数据抓取实战
    这篇文章主要分享了一个Python爬虫在访问https://stats.nba.com时遇到的问题,以及是如何解决的。在尝试抓取NBA数据时,遇到了一个错误:HTTPSConnectionPool(host='stats.nba.com',port=443):Readtimedout.(readtimeout=None)。问题的根本在于urllib3的connectionpool模块,这个模块是......
  • 如何利用Swift爬虫采集微博数据及热度预测
    我们在使用微博的时候,经常会看到一些比较热门的新闻或者消息,但是往往当我们发现这个新闻热度的时候,已经过去了好久。那么今天我就用Swift编写了一个采集微博数据及热度预测的爬虫,需要了解微博的数据结构和API接口。一起来看看吧。importFoundation//定义代理信息letproxyHost......
  • MySQL数据库必知,满满干货!
    1、关于数据库1.1数据库技术特点数据结构化数据共享数据独立性高数据统一管理1.2区分数据库、数据库管理系统、数据库系统数据库:一个存在于计算机存储设备上的数据集合,该集合中的数据按照一定的数据模型进行组织、描述和存储。数据库管理系统:一种介于用户和操作系统之间的数据库......
  • ElasticSearch 搜索数据
    精确查询存在查询Existsquery用于查询某个字段不为空的数据。如下所示,查询age不为空的数据POSTuser/_search{"query":{"exists":{"field":"age"}}}主键查询通过_id字段查询数据POSTuser/_search{"query":{"ids"......
  • 亚信安慧AntDB数据并行加载工具的实现(一)
    1.概述数据加载速度是评判数据库性能的重要指标,能否提高数据加载速度,对文件数据进行并行解析,直接影响数据库运维管理效率。基于此,AntDB分布式数据库提供了两种数据加载方式:一是类似于PostgreSQL的Copy命令,二是通过AntDB提供的并行加载工具。Copy命令是大家都比较熟悉的,但Copy命令导......
  • 亚信安慧AntDB数据并行加载工具的实现(二)
    3.功能性说明本节对并行加载工具的部分支持的功能进行简要说明。1)支持表类型并行加载工具支持普通表、分区表。2)支持指定导入字段文件中并不是必须包含表中所有的字段,用户可以指定导入某些字段,但是指定的字段数要和文件中的字段数保持一致。3)支持导入部分记录并行加载工具支......