前言:
此时姐妹们对“微博搜索引擎算法”可能比较关心,兄弟们都需要分析一些“微博搜索引擎算法”的相关内容。那么小编也在网上网罗了一些对于“微博搜索引擎算法””的相关知识,希望小伙伴们能喜欢,你们一起来了解一下吧!Automa是一款开源的图形化&低代码爬虫工具,让用户在不懂代码的情况下,通过拖拽方式做一些实用的爬虫。例如爬取微博信息、批量搜索百度、解除某些网站不可复制限制、下载抖音视频、免费看VIP视频等等。
本系列教程将先介绍它的基本使用,然后基于它做一些有趣的项目实践(包括但不限于上述所举的例子)。本文是该系列的第四篇文章,实现一个完整版微博爬虫。
一、简单版微博爬虫回顾
在上一篇文章中,我们实现了一个简单版微博爬虫,它是基于微博api接口来实现的。工作流如下所示:
但是我们发现该简单版爬虫有以下不足:
无法实现循环抓取。即无法抓取多页;抓取的微博文本是未展开的片段;
本文接下来主要解决这两个问题。
二、微博爬虫完整版
先看一下完整版微博爬虫的工作流。这条工作流比简单版的工作流复杂了不少,下面我们来看看是如何解决上述两个问题的。
1、循环抓取
先说下整体思路:遍历需要抓取的页数,然后生成每一页的URL,最后复用简单版爬虫对每一页就行抓取;
整个过程对应工作流的如下部分。我们来看下具体实现。
首先,通过Javascript组件,定义变量,即需要遍历的页数。这里我们遍历前3页,组件参数如下所示,定义了一个pages变量,值为[1,2,3].
然后用循环数据组件遍历这个变量,组件参数如下:
最后,修改HTTP请求组件的URL,将page参数改为{{loopData.7g0mFE}},组件参数如下所示:
当然,别忘了在工作流最后节点加上循环断点组件,以便循环结束后,跳出循环。
2、抓取微博的完整文本
先说整体思路:仔细分析网络请求,不难发现,微博接口用isLongText字段标识是否为长文本。如果为长本文,则通过微博的id去请求另外一个接口获取完整微博文本;否则,直接复用简单版爬虫即可。
整个过程对应工作流的如下部分。我们来看下具体实现。
首先,通过条件组件,判断该条微博是否为长文本,组件参数如下:
分两种情况讨论:
如果为长文本,则通过微博id去请求获取长文本内容,对应HTTP请求组件参数如下,注意URL中的id参数。然后再将获取的长文本写入到table中。如果不是长文本,则复用简单爬虫里写table的逻辑即可。
通过上述操作,我们就完成了完整版的微博爬虫。最后,我们来看下整个工作流的运行。
(如果需要完整例子项目文件、或者对步骤还存在疑问的朋友,可以在评论区留言或者私信)
后面文章会做一些更复杂、更有趣的例子,敬请期待~
如果你有什么想做的爬虫,也可以在评论区留言哦~
标签: #微博搜索引擎算法