说真的,网络爬虫并不总是管用。有时网站界面变了,或者其它条件阻止了你的爬虫工作。这里有个简单的解决办法。
我在一个普通的周间工作日醒来,发现邮箱里有一封邮件。
邮件标题为: “yourscraper@gmail.com — 你的网页抓取工具还没有运行完成。”这种情况不常发生,但我的网络爬虫偶尔会失败。这是因为被我抓取的系统会不时变化,这是正常的。所以我需要重新测试爬虫并进行相应的调整。
我过去已经创建了很多爬虫,但以下工作流程提高了我的成功率当爬虫运行时,它通常会爬取数据并保存到数据库里。或者它会帮你做其他你要求的事情。
我这样做是为了让我的工作更成功,我在抓取器的正常运行和异常处理两端都集成了工作流管理工具。所以当抓取器最终成功时,将成功抓取的数据发送到 webhook。但当抓取器在任何步骤失败时,我会直接将截图和错误日志发送到工作流管理工具,它会直接给我发邮件。
在这个工作中,我使用的是自己托管的n8n。n8n 是一个非常棒的开源软件,可以非常轻松地帮助你自动化工作流程。你可以自己托管 n8n 或者使用它的云版本。
n8n.io - 一个强大的工作流自动化工具n8n 是一个免费和开源的工作流自动化工具 - 本地部署,下载我们的桌面应用程序,或注册n8n.io我的工作流程大致如下所示:
当数据被接收且一切正常时,它会向“Good Webhook”发送。此 webhook 在 n8n 中创建,支持 POST 或 GET 请求。您发送数据后,这些数据会被保存到 MongoDB 中。
现在,魔法来了。如果抓取器失效,它会直接将截图和错误消息发送到“故障的Webhook端点”。然后,这个 Webhook 通过Mailgun向我的邮箱发送一封邮件。
看看所有你的 webhook 调用并深入了解收到的数据通过这个流程,我可以立即验证我的爬虫是否正常工作,或者页面是否有变化。由于队列机制,我可以在确认其运行情况后重启它。
利用 n8n 作为错误处理程序的很酷的一点在于,你可以看到每次抓取器运行,并检查数据是否没有问题。如果出现问题,你也能看到错误消息。
如上图所示,每个 webhook 调用记录都可以在“执行”标签中看到。所以,你可以轻松地详细了解发生了什么情况。
这个工作流帮助我在爬虫出现问题时快速了解情况,以便我可以立即解决它的问题。希望你喜欢这篇文章。如果它有很多人点赞,我会写一个详细的步骤教程来教你怎么创建这个工作流程。
谢谢, 阅读,
托伦(Thoren)