Automa自动化爬取文本(一)

目录

介绍

下载地址

安装教程

 爬取百度热搜


介绍

Automa 是一个免费、开源的 Chrome 扩展,它通过目前流行的 No Code 无代码方式,只需要拖拽模块就实现了浏览器自动化,比如自动填写表格、执行重复性任务。

在工作中,如果我们遇到重复性工作,或者说是浏览器自动完成的一些操作,我们为了避免重复工作,就可以利用这个免费实用的工具帮我完成。

下载地址

链接:https://pan.baidu.com/s/1RYbmr6zgmQ52GwFZkWxTfA?pwd=ojem 
提取码:ojem

安装教程

下载后是crx文件直接拖入浏览器的程序扩展页面即可

 

 爬取百度热搜(循环数字)

这里进行一个百度热搜列表的简易爬取

这个列表数据有30条数据,我们爬取列表数据里的标题,简介,以及右边的热搜指数数据

首先打开automa主页,直接在安装好的浏览器插件列表里点击automa

 在主页添加新工作流

每个工作流都是需要触发器进行触发的,默认新建工作流后就会新建一个触发器

添加触发器打开的网页

 

 

 

 由于我们看到需要爬取的百度热搜榜是一个列表数据,这里我们就需要建立循环进行爬取

我们这里使用automa提供的loopData循环的数字循环形式

 

返回百度热搜页面,点击automa插件,选择元素选择器 

 

 选中第一个标题,观察样式选择器

 再选中第二个和第三个观察它们的样式选择器变化

 

可以观察到,多个标题区域的样式选择器内容是一致的,只有child(数字)中的数字跟随列表行数的index进行变化递增,后面的标题选择也是一样的,有兴趣的可以自己试下,由此我们可以直接拿取这里的样式选择器,并想办法直接将child中的数字进行递增,就可以直接循环拿取整个页面的所有标题,简介,指数等

 创建获取三个文本的标签

 把刚才测试的标题的样式选择器,简介选择器,指数选择器等内容直接粘贴到相对应的标签里

简介和指数的以此类推

然后我们前面已经创建了loop循环标签,这里套用automa提供的循环参数 

{{$increment([loopData.loop.$index],1)}}直接代替child()中的数字参数

注意格式 {{$increment([loopData.前面定义的loop循环唯一标识.$index],1)}}

举例: 原样式选择器表达式  .category-wrap_iQLoo:nth-child(3) .c-single-text-ellipsis

         替换后  .category-wrap_iQLoo:nth-child({{$increment([loopData.loop.$index],1)}}) .c-single-text-ellipsis

 简介,标题,指数的样式选择器表达式都依次类推

最后定义循环结束

 还需要定义爬取的内容添加到表格中

 添加表格三列

 

然后区分映射爬取的字段到对应的表格列中

 

 标题,简介依次类推

定义好之后点击保存

点击启动开始测试

 点击日志查看爬取结果

 

 

 

 测试成功

循环数据数字小结:

数字循环实际上就是通过拿取单个元素之后分析和其同样结构的元素,比如第一行标题与其他行标题样式选择器表达式的规律,发现其中只是child(number)中数字的递增,所以这种情况下可以直接使用循环数字来做

爬取百度热搜(循环元素)

我们不仅可以通过循环数字来进行数据元素的爬取,还可以通过循环元素来进行爬取

可以直接在前面的流程中进行改造

 调整loop循环不再通过数字循环,而是通过元素循环

 

 同理同样列表选择后替换原有的简介,标题,指数的样式选择器

 

 

 将标题的列表样式选择表达式映射到对应的标题标签中

 简介和指数同理,不再一一列举

注意此时如果直接保存运行可能会产生爬取的内容全部一样的情况 比如:

这是因为我们在选择标题,简介,指数的列表选择器时,只是把当前行的样式选中了,而并没有把整个列表的样式选择进行配置

这里将我拿到的标题,简介,指数,已经loop循环元素的样式选择表达式列举进行比较

 loop循环元素: .container-bg_lQ801 > div:nth-child(2) > div

标题循环元素: .container-bg_lQ801 > div:nth-child(2) > div a.title_dIF3B

简介循环元素: .container-bg_lQ801 > div:nth-child(2) > div div.large_nSuFU

指数循环元素: .container-bg_lQ801 > div:nth-child(2) > div div.hot-index_1Bl1a

 可以看到,标题,简介,指数的选择器前面的表达式和loop循环元素的一致,所以这里可以直接使用automa提供的样式选择元素替换前面一致的表达式{{loopData@设置的loop循环唯一标识}}以此来映射整个循环元素 

替换后的:

标题循环元素: {{loopData@loop}} div a.title_dIF3B

简介循环元素: {{loopData@loop}} div div.large_nSuFU

指数循环元素: {{loopData@loop}} div div.hot-index_1Bl1a

 点击保存进行测试

 可以看到此时爬取的元素不再是同样的数据了,说明整个循环体元素映射绑定成功

爬取百度热搜(无循环)

前面介绍了两种爬取方式,我们还可以使用无循环进行爬取

还是建立相似的结构

 这里不同的就是没有循环体了

然后我们在标题,简介,指数的样式选择器赋值时也和前面的循环元素一样赋值即可,但是这里直接赋值,不再以循环体的来代替

然后我们在选择器选项中勾选多选和等待选择器 简介,指数同理,

 然后我们就可以点击保存进行测试

 然后我们比较这三种方式

 

 

比较三者的速度,发现无循环方式是最快的,但并不是说无循环就是最好的方式,实际使用中还需要考虑到实际的场景来做选择 

<think>好的,我现在需要帮助用户寻找Automa的示例代码和使用方法。首先,用户提到了Automa,但需要明确他们指的是哪Automa,因为根据提供的引用,有两个不同的工具:个是Chrome插件Automa,另个是Julia库Automa.jl。所以,我需要先确定用户具体指的是哪个。 根据用户的问题中提到的“示例代码”,引用4中提到了使用JavaScript在Automa插件中获取元素数量,而引用3中提到了Automa.jl的正则表达式编译器。用户可能没有明确说明是哪个,但根据引用内容,两者都有可能。不过,用户的问题可能更倾向于Chrome插件Automa,因为引用1、2、4都涉及自动化任务,而引用4中提到了具体的JavaScript代码示例。 接下来,我需要从提供的引用中提取相关信息。引用1介绍了Automa插件的基本功能,引用4给出了个JavaScript代码片段用于获取元素数量。引用3则介绍了Automa.jl的用途,但用户可能需要的是插件方面的示例。不过,用户的问题没有明确说明,所以可能需要涵盖两者,但根据引用中的示例代码,可能更偏向插件。 需要确保回答结构清晰,分点说明。可能需要将两个Automa分开解释,分别给出示例代码和使用方法。同时,根据系统指令,行内数学表达式用$...$,独立公式用$$...$$,但在这个问题中可能用不到数学公式。需要检查LaTeX语法是否正确,但当前问题可能不涉及数学表达式,不过要留意是否有需要的地方。 然后,生成相关问题,按照示例中的结构,在最后添加相关问题。需要确保问题与内容相关,并且有助于用户进步了解。 现在整理回答的结构: 1. 区分两个Automa工具:Chrome插件和Julia库。 2. 分别给出示例代码和使用方法。 - 对于Chrome插件Automa,引用4中的JavaScript代码可以作为示例,同时说明如何安装和使用。 - 对于Automa.jl,引用3中的信息,可能给出正则表达式编译的示例代码。 3. 引用正确的来源,例如引用1、3、4。 4. 生成相关问题,如如何安装Automa插件Automa.jl的应用场景等。 需要确保回答符合用户的需求,用户可能想了解如何实际使用Automa,特别是示例代码。因此,需要详细说明步骤,并提供代码片段。同时,注意引用来源,如引用4中的代码示例和安装步骤来自引用1和4,Automa.jl的信息来自引用3。 可能还需要注意用户提到的“系统级指令”中的要求,比如使用中文回答,正确使用LaTeX格式(如果有的话),生成相关问题等。 最后,检查是否符合所有要求,包括引用标识的正确放置,代码块的使用,以及问题的相关性。</think>### Automa 示例代码与使用方法 根据你的需求,Automa 可能指两个不同工具:**Chrome插件Automa**(用于Web自动化)或 **Julia库Automa.jl**(用于正则表达式编译)。以下是两者的示例代码与用法说明: --- #### 、Chrome插件Automa **核心功能**:通过可视化流程实现Web自动化(如数据抓取、表单填写等),无需编程基础[^1]。 **示例1:抓取分页数据** ```javascript // 获取当前页面的元素数量(如分页条目数) const dir_cn = document.querySelectorAll('.file-list-item').length; automaSetVariable('dir_cn', dir_cn); ``` 此代码通过JavaScript获取指定元素数量,并将结果存储到变量`dir_cn`中,用于控制分页循环[^4]。 **使用步骤**: 1. **安装插件**:在Chrome商店搜索“Automa”并安装。 2. **创建流程**: - 新建个`Workflow`,添加触发动作(如手动触发)。 - 使用`Loop Data`模块循环分页(需配合变量控制循环次数)。 3. **添加动作**: - 使用`Execute Script`模块运行自定义JavaScript代码。 - 通过`Extract Data`模块抓取页面数据。 --- #### 二、Julia库Automa.jl **核心功能**:将正则表达式编译为高效文本处理代码[^3]。 **示例2:编译正则表达式** ```julia using Automa # 定义正则表达式模式 pattern = re"[a-zA-Z]+" # 编译为状态机 machine = Automa.compile(pattern) # 生成Julia代码 Automa.generate_code(machine) ``` 此代码将匹配所有英文字母组合,并生成高性能的文本扫描程序。 **使用步骤**: 1. **安装Julia包**:在Julia REPL中运行`]add Automa`。 2. **定义模式**:使用`re"..."`语法编写正则表达式。 3. **生成代码**:通过`Automa.compile`和`Automa.generate_code`生成可执行代码。 --- ### 注意事项 - **Chrome插件**适合非技术人员快速实现简单自动化,但复杂场景仍需代码辅助[^2]。 - **Automa.jl**适合需要高性能文本处理的开发者,编译后的代码速度远超手工实现。
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值