「低代码爬虫系列二」Automa实现一个自动展开微博的爬虫
liuian 2024-12-13 14:53 91 浏览
Automa是一款开源的图形化&低代码爬虫工具,让用户在不懂代码的情况下,通过拖拽方式做一些实用的爬虫。例如爬取微博信息、批量搜索百度、解除某些网站不可复制限制、下载抖音视频、免费看VIP视频等等。
本系列教程将先介绍它的基本使用,然后基于它做一些有趣的项目实践(包括但不限于上述所举的例子)。本文是该系列的第二篇文章,实现一个自动展开微博的爬虫。
第一篇文章参见「低代码爬虫系列一」Automa实现一个天气预报爬虫
一、自动展开微博的爬虫背景
当我们在pc上刷微博时,微博页面会自动对长内容进行折叠。如果想要查看去全文,需要我们一一点击“展开”按钮来查看全文。那能不能实现一个爬虫,打开想要查看的微博页面,自动点击“展开”按钮呢?
二、实现方案
了解了上述背景后,我们使用Automa来实现对应效果。
先给出整个项目的工作流,如下所示,然后我们再一一介绍对应的组件及其参数。
1、触发器
整个工作流的开始节点。每条工作流都有这个触发器组件,默认是手动触发模式。
2、新建标签页
该组件是用于在浏览器中打开一个新的页面,双击该组件,在左侧参数栏填入对应博主的微博页面地址。
3、点击元素
模拟点击页面对应元素。这里我们需要点击每条博文中的“展开”按钮。Automa支持通过css选择器或者xpath来定位元素,通过开发者模式,不难得到“展开”按钮的css选择器为span.expand。在参数设置中勾选多选、等待选择器。
4、滚动元素
模拟页面左右滚动或者上下滚动的效果。由于微博是采用下拉异步加载的方式来实现之前的博文的,所以如果想要看之前的博文,就需要模拟下拉的功能,设置垂直滚动为10000即可。
5、延时
由于页面需要一定的加载时间,这里我们加入一个延时操作。即每次滚动下滑后,等待1000ms;
6、再次点击元素
和步骤3完全相同,对新加载的微博,再次点击“展开”按钮。
7、循环
类似程序设计中的循环功能。这个组件接口略微有点复杂,我们介绍下它的连线接口:
- 左边接口,连接每次循环的最后一个组件;
- 右边第一个接口,连接整个循环执行结束后的下一个组件;
- 右边第二个接口,连接每次循环开始的第一个组件;
还需要设置对应的循环次数,这里我们设为3,表示将第4、5、6的步骤重复三次;
8、回到页面最上方
使用滚动组件,将垂直滚动参数设为-10000,如图所示:
到此,自动展开微博内容的爬虫就已经实现了。我们点击右上角的运行按钮来看下效果。
有朋友可能不仅想要自动展开内容,而且要自动抓取对应微博到excel,这应该如何实现呢?欲知后事如何,请听下回分解~
(如果需要完整例子项目文件、或者对步骤还存在疑问的朋友,可以在评论区留言或者私信)
后面文章会做一些更复杂、更有趣的例子,敬请期待~
如果你有什么想做的爬虫,也可以在评论区留言哦~
相关推荐
- 如何使用 Crontab 在 Linux 中安排 Cron 作业?
-
在Linux世界中,自动化运维和任务调度是提升效率的核心技能之一。而说到定时任务调度,「Cron」几乎是无人不知的标配工具。你可以用它按分钟、小时、天、周甚至月的粒度去执行脚本、备份、监控、同步...
- 迅雷发布下载MCP服务:一句话让AI自动找资源并下载
-
IT之家6月26日消息,迅雷今日发布下载MCP服务,号称“一句话即可让AI自动帮您下载”,该项服务同时支持PC版迅雷和NAS迅雷,现所有用户均可免费使用。目前迅雷MCP支持...
- Linux学习大总结(纯干货)-ubuntu的安装与Linux基础操作
-
一、Linux简介Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工...
- 连载嵌入式Linux开发教程:初始Ubuntu
-
2.5创建和配置虚拟机2.5.1创建虚拟机双击桌面的VMwarePlayer启动快捷方式打开VMwarePlayer软件,运行界面如图2.15所示。点击“创建新虚拟机(N)”,可以创建一台虚拟机...
- 解决ubuntu关机后自动重启的问题(ubuntu 关机没反应)
-
1.打开/etc/apt/sources.list,把里面的所有源删除,怕有风险的话先backup;2.然后进入软件与更新,重新选择源和serverthenapt-getupdate。注:我也不...
- Ubuntu 24.04设置自动登录(ubuntu设置root自动登陆)
-
在Ubuntu24.04中设置自动登录,可以通过修改GDM(GNOMEDisplayManager)的配置文件来实现。一、修改GDM配置文件1、打开终端:通过快捷键Ctrl+Alt+T打...
- docker-compose备份数据库,在crontab定时任务中不生效解决方法
-
问题:数据库为PostgreSQL。由于数据库是用docker-compose运行,所以直接用docker-compose命令直接备份。测试终端直接运行备份没问题,将命令添加到crontab定时任务...
- crontab定时任务执行时间与系统时间不一致解决方法
-
Ubuntucrontab定时任务执行时间与系统时间不一致(时区差)查看时间>#ll/etc/localtimelrwxrwxrwx1rootroot35Aug508:56...
- 如何在 Ubuntu 命令行中使用 Wireshark 进行抓包?
-
Wireshark是一个开源的网络协议分析工具,因其强大的抓包和分析功能而闻名。无论是调试网络问题、监控流量,还是进行安全审计,它都能派上用场。通常,我们会在带有图形界面的系统中,通过Wires...
- Ubuntu 操作系统常用命令详解(ubuntu简单的命令)
-
UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...
- Linux系统如何设置开机自动运行脚本?
-
大家好,我是良许。在工作中,我们经常有个需求,那就是在系统启动之后,自动启动某个脚本或服务。在Windows下,我们有很多方法可以设置开机启动,但在Linux系统下我们需要如何操作呢?Linu...
- 【案例】Linux(Ubuntu)定时删除3天前文件夹
-
我公司有个OCR上传图片系统,每天会生成一个类似2025-05-10的文件夹,为了运维方便和硬盘空间的使用,我需要每天去删除之前的旧文件夹,比较麻烦。借助了Deepseek的帮助,将内容分享一下并给自...
- 解放你的双手,ubuntu定时自动备份MySQL数据库,亲测有效
-
1、新建一个文件夹存放备份的数据文件,根据个人需要放在合适的位置mkdir/home/cms_mysqlbackup2、创建脚本文件,我放在home文件夹了,命名为autobackup.shcd...
- Linux 如何每 5、10、15 或 30 分钟运行一次 Cron 作业?
-
在Linux系统中,Cron是一个强大的工具,用于自动化重复性任务。通过合理配置Cron,用户可以轻松实现每5分钟、10分钟、15分钟或30分钟运行一次的定时任务。本文将深入探讨如...
- 运维实战:深度拆解Systemd定时任务原理,90%的人不知道的玩法
-
运维实战:深度拆解Systemd定时任务原理,90%的人不知道的高效玩法一、Systemd定时任务的核心原理Systemd定时任务是Linux系统中替代传统cron的现代化解决方案,通过...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
python使用fitz模块提取pdf中的图片
-
- 最近发表
-
- 如何使用 Crontab 在 Linux 中安排 Cron 作业?
- 迅雷发布下载MCP服务:一句话让AI自动找资源并下载
- Linux学习大总结(纯干货)-ubuntu的安装与Linux基础操作
- 连载嵌入式Linux开发教程:初始Ubuntu
- 解决ubuntu关机后自动重启的问题(ubuntu 关机没反应)
- Ubuntu 24.04设置自动登录(ubuntu设置root自动登陆)
- docker-compose备份数据库,在crontab定时任务中不生效解决方法
- crontab定时任务执行时间与系统时间不一致解决方法
- 如何在 Ubuntu 命令行中使用 Wireshark 进行抓包?
- Ubuntu 操作系统常用命令详解(ubuntu简单的命令)
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- uniapp textarea (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)