完美:优采云采集器自定义任务爬取微博数据
优采云 发布时间: 2021-01-11 10:01完美:优采云采集器自定义任务爬取微博数据
我只想统计某个特定年份博主发布的所有微博,并统计评论和喜欢的总数。这听起来很简单。我没想到这么长时间折腾。
第一个是微博数据提供的支付功能。更不用说付款,它只能计算近一年,并且不能任意指定时间段。例如,在2020.4.11的一天,只有2019.4.11〜2020.4.11。每年的除夕夜是否有必要计算上一年的数据? ? ?
所以我找到了微博API(),发现很难使用。我不知道是不是我毕竟,我只使用了百度和AutoNavi API,并且经验不足。首先创建应用程序,然后花了很长时间才找到入口。它不在[我的应用程序]中,而是在首页上看起来像广告的按钮中。对于API接口,需要对提供的一些基本公共信息进行授权,并且OAuth2.0授权由于某些未知原因而失败。似乎无法通过官方渠道获取数据,我只能自己爬网。
似乎迟早会填满履带坑。我还没学会,也从未使用过。找到其他人的代码并更改了微博ID后,我将无法访问它。我不知道该公司的微博是否受到保护。
最后,我不得不将数据爬到一半,并使用优采云采集器()。尽管该软件易于使用,但还是花了一些时间才能理解其中的各种设置。经过无数次的零采集和数据不完整之后,最终的设置可能是不必要的,但是这组设置确实可以正确捕获数据,并且不需要花费几分钟,因此我不必担心。本文记录了踩到的一些凹坑以及最终的成功设置。
软件准备
免费下载,安装,注册,免费版本已足够,任务数据量不大,本地采集模式已足够。提供了一些模板,包括微博。
优采云采集器中提供的微博数据采集模板
但微博最麻烦的部分是登录操作。您必须不时输入验证码。另外,全年对任务进行计数需要大量的滚动和翻页操作,因此您仍然必须使用自定义任务,这是不可避免的。设置采集 URL,采集进程,登录操作。
采集 URL
采集 URL的设置基本上没有问题。只需在URL中找到需要更改的参数即可。如果有多个页面,建议从URL设置页码。要可靠,并自动翻页。我担心翻页错误,因此在微博上翻页后就跳出登录页面,所以自动识别始终成功,但是一开始采集没被抓住。以我的微博个人主页为例,我在2019年6月查看了博客文章(#feedtop),发现时间轴按月划分。 6月份的微博帖子略多,并且出现了页面更改,因此我需要修改两个参数。 [月]和[页数]。
个人微博截图
在优采云采集器中,选择[批次生成] URL,在文本框中选择要替换的参数,然后单击[添加参数]进行设置。这里设置的两个参数,[Month]为01〜12(软件提供了[Zero Fill]功能,非常周到),[Page Number]为1〜4,因为这次微博的数量没有计算超过每月4页,这应该是乐观的。
批量生成URL参数设置
自动生成48个URL后,您可以[保存设置]并开始编辑任务。然后,该软件将打开第一个网站,并开始自动识别此页面的内容,并生成采集数据的结果,并提供基本上是可信的,不可信的操作提示。单击[Generate 采集 Settings]来自动生成采集进程的框架(毕竟,它比您自己的框架更可靠),然后调整设置的详细信息(详细信息被抛了很长时间)
自动识别结果
采集流程
自动生成的流程图,基本框架很好。
循环采集的基本框架
启动详细设置,[提取列表数据]没什么好说的,只需删除一些不必要的字段即可。主要是[在循环中打开网页],单击小齿轮以打开设置:
在循环中打开网页设置
[打开网页之前]在这里,由于担心加载不完整,我打开了下一页,并将等待时间设置为3秒。 (我尝试使用cookie设置绕过登录,但未成功,并且在当前页面上获取cookie的按钮没有响应,因此我放弃了。)[打开网页后]在此处设置滚动。起初我以为Scroll 2次到末尾,后来发现不同的页面不一样,将其设置为3次,间隔为1秒,这也怕在加载之前跳过。
滚动设置在这里纠缠了很长时间,因为总是会发生相同的错误。显然,一个页面应该被加载3次,并最终获得45条数据。执行结果时,始终仅捕获15个,并且不进行滚动。我不知道是因为我没有登录,还是打开网页而没有等待打开。
登录操作
为了确保多页爬网的顺利完成,仍然没有必要登录,否则将始终弹出提示登录对话框,采集找不到任何内容。合理地说,微博登录是通过cookie记录的,但是如果将其放置在软件的采集任务中,则该登录将不起作用。每次启动时,全新的界面都要求您登录。眨眼之间,您就无法识别自己的身份。不记得了。因此,参考模板中的设置,在开始循环采集之前添加了一个登录操作,该操作已添加到流程图中以诚实地执行。
在流程图中添加了登录操作
[打开网页]此处的URL设置为微博条目(),后续的操作设置实际上是*敏*感*词*的,直接在预览的网页中进行操作,单击对话框或按钮,以及[操作提示]对应将出现操作,您可以记录输入文本(用户名,密码),登录时单击元素和其他操作,模拟人工操作并自动将其添加到流程图中,但是它们可能在循环后面,需要手动拖动调整流程图中各框的顺序,并在流程图完成[采集]之后开始。
我认为如果所有这些都设置好,并且还记下了帐户和密码,那么我应该可以先登录。出乎意料的是,登录时未输入用户名或未输入密码。结果,没有登录就执行了下一步,并且循环开始了,但是仍然没有发现任何问题。此时,打开网页之前等待3秒钟似乎有效,抓住3秒钟的时间,手动输入自动操作中未输入的用户名或密码,然后单击立即登录,然后然后打开采集的主页,在完成登录之前,我终于爬下了每个页面,其中收录根据需要滚动滚动加载的所有数据,然后就完成了。
最后完成的采集