Automa是一款开源的图形化&低代码爬虫工具,让用户在不懂代码的情况下,通过拖拽方式做一些实用的爬虫。例如爬取微博信息、批量搜索百度、解除某些网站不可复制限制、下载抖音视频、免费看VIP视频等等。
本系列教程将先介绍它的基本使用,然后基于它做一些有趣的项目实践(包括但不限于上述所举的例子)。本文是该系列的第三篇文章,实现一个抓取微博的爬虫。
第一篇文章参见
第二篇文章参见
一、微博爬虫的实现思路
在做研究时,我们常常需要抓取微博内容来作为基础分析材料。微博爬虫就是干这个事情的。
提供两种微博爬虫的实现思路:
- 从微博页面抓取对应元素;比如下图中,直接获取每条微博html元素对应的文本。
- 从微博接口抓取对应内容;这要求我们掌握一定的网络接口分析能力,能够找出获取微博内容的接口。
为了尽可能多的演示Automa组件,我们采用思路2进行实现。(思路1与系列二文章类似,感兴趣的读者可以自行实现)
爬取这类需要登录的网站,Automa的一大好处是提前手动登录网站后,后续就不需要再考虑登录问题了。
二、实现方案
确定了实现思路后,我们使用Automa来实现对应效果。
先给出整个项目的工作流,如下所示,然后我们再一一介绍对应的组件及其参数。
1、触发器、新建标签页
这两个组件在上一篇文章中已经介绍了。这里不再赘述,不清楚的同学可以去看原文。
2、HTTP请求
该组件是用于在浏览器中请求接口,参数对应如下。具体来说,就是设置请求方法为GET,URL为微博列表的api,内容类型和超时都默认。响应设为JSON,Data Path为返回json中我们需要的字段,然后把这个值赋给变量mblog_list(可以随意命名)
有朋友可能问,这个获取微博列表的api是怎么找到的。其实,通过浏览器-开发者模式(F12)-网络,就可以看到这个接口的URL了。
我们再来看下它返回的json数据。每条微博内容为data.list里的每一项,这也就是组件参数里data path填写data.list的原因。
3、循环数据
这个组件用来遍历变量或表格等。我们需要遍历data.list里的数据(也就是mblog_list变量),因此参数配置如下:
需要注意的是,这个组件需要和 循环断点 这个组件搭配使用。当变量遍历完成后,才会执行循环断点组件 后续的操作(组件右边连线的操作)。
4、插入数据
这个组件用于将数据写入到表格中。参数如下所示,其中loopData.loopid表示当次循环的变量,loopid指的是循环组件具体id。从前面json返回数据中可看出,text_raw为存储微博本文的字段。所以这个参数为{{loopData.ljffPi.text_raw}}
到此,抓取微博的爬虫就已经实现了。我们点击右上角的运行按钮来看下效果。(微博页面看不到任何变化,因为不涉及网页元素操作。只是在后台发送http请求并解析)
有朋友可能发现了上述实现的问题:抓取到的文本是未展开的微博内容;只能抓取到一页微博。那如何循环抓取多页的微博全文呢?应该如何实现呢?欲知后事如何,请听下回分解~
(如果需要完整例子项目文件、或者对步骤还存在疑问的朋友,可以在评论区留言或者私信)
后面文章会做一些更复杂、更有趣的例子,敬请期待~
如果你有什么想做的爬虫,也可以在评论区留言哦~
声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者一禾的认知觉醒之路所有,原文出处。若您的权利被侵害,请联系删除。
本文标题:(解除复制限制)(解除复制限制的快捷键)
本文链接:https://www.51qsb.cn/article/m8skq.html