从 Web 收集数据时不偷工减料地削减成本
已发表: 2023-02-13在没有计划的情况下从网络上抓取数据充满了风险。 当您迷失在复杂的网站和数据清洁中时,您的预算将很快超支。 如果您使用的是云资源并且不跟踪每天发生的成本,则机会更高。 在成本优化方面,您必须审视整个工作流程,通常包括 –
- 从网络上抓取数据。
- 数据的清理和规范化。
- 将数据存储在数据库或 S3 存储桶等介质中。
- 通过 API 调用或直接访问存储位置来访问数据。
- 可能的数据加密和解密(如果数据敏感且高安全性至关重要)。
- 处理抓取的数据以使其可用于下游工作流程。
恢复 > 重新启动
在许多情况下,当您在数百万个网页上抓取数十个数据点时,您的代码可能会在某个时候中断。 在大多数情况下,人们会继续重新启动整个任务——是的,这确实更容易实现和使用。 然而,通过一些工程上的奇迹,可能使用缓存机制,您可以确保在抓取作业中断时保存检查点。 一旦解决了损坏背后的问题,您就可以通过从保存的检查点恢复来继续抓取数据。
服务器与无服务器
这一点对于那些不是实时抓取数据而是批量抓取数据的人来说很重要。 例如,假设您每天两次从一百万个网页中抓取数据。 每次,抓取工作需要 2 小时才能完成。 所以任务每天运行的总时间是2+2=4小时。 现在,如果您使用 AWS EC-2 实例之类的东西进行基于服务器的设置,除非您每次都手动打开和关闭实例,否则您将被收取 24 小时的费用——这是一项艰巨且容易搞砸的工作——上过程。 此处采用的更好方法是使用无服务器设置,您可以在其中按需运行云资源,例如 AWS Lambda 或 Fargate。 这样,您只需为使用的 4 小时付费,从长远来看将为您节省大量资金。 如果您使用 24×7 运行的自动蜘蛛从网络上抓取数据,您可以选择基于服务器的设置。
网站更改检测器
你可能从 5 个网站上抓取了 100 万个网页——总共 500 万个网页抓取。 现在假设其中 2 个网站进行了基于 UI 的更改,当您运行爬虫时,您在工作流程中得到了错误的数据。 现在你需要花费工时和额外的计算资源来找出数据的哪一部分不可用,更新爬虫然后为 200 万个网页再次运行它。 如果您运行一个更改检测器脚本,该脚本会告诉您 2 个网站的外观和感觉发生了变化,那么这种情况就可以很容易地避免。 这将为您节省时间、金钱,甚至可能会丢失数据。
自动化人工任务
创建网络抓取工作流时,将有许多最初手动执行的任务。 这些可能包括数据验证和验证、数据清理、格式化等阶段。 数据分析师通常会花费数小时和数天时间在本地机器上运行脚本。 考虑到他们可能处理的数据量很大,脚本也可能需要一段时间才能运行。 这里更好的选择是在获取数据脉搏后自动执行一些步骤。 随着时间的推移,您应该将更多任务自动化以提高效率。
选择公共云而不是专用服务器
除非您使用每一毫秒都很重要的数据流做出决策,否则您可以负担得起使用公共云而不是专用服务器。 性能可能会略有下降,但从长远来看,使用专用服务器可能会使您的网络抓取成本激增,没有任何限制。
开源工具
大多数许可软件通过按月或按年订阅的方式花费巨大。 如果您需要 IP 轮换或数据清理等额外功能,您可能需要额外付费。 此外,大多数这些付费工具都会有一些限制,如果获得批准,任何新功能的添加或更改都可能需要几个月的时间。
外包合规问题
从整个网络上抓取数据时,您需要考虑多个法律方面,例如
- 您是否正在捕获任何个人信息。
- 该网站的 robot.txt 文件。
- 围绕位于登录页面后面的数据的规则。
- 处理受版权保护的内容。
- 确保内容重用不违反法律。
- 了解您从中抓取内容以及最终用户所在位置的地理位置的法律。
和更多…
由于全球数字法律的复杂性,很容易因一时失误而误入歧途。 另一方面,并非每家公司都会有法律团队来处理此类问题——这会很昂贵。
您可以改为外包您的法律要求,以便在您设置新的网络抓取流程或决定使用抓取的数据创建产品时寻求他们的帮助。 网络抓取的按需法律服务对中小型公司更有意义,而财富 500 强的法律部门可以在内部处理此类问题。
使用机器使数据验证更便宜
公司可以做出的一个转变是使用第三方库来验证数据,而不是聘请数据专家。 通常有数十名分析师手动分析原始数据、进行某些更改、生成新列并对数据进行规范化。 大多数这些活动都可以通过使用 AWS Step Functions 等工具创建工作流来实现自动化。 这些工作流程可以根据以下条件进行配置:
- 您的数据是以实时流还是批处理的形式出现。
- 定期处理的数据量。
- 您要对数据执行的处理类型。
- 数据点遍历工作流所需的可接受时间。
- 需要重试、回滚和重新运行机制。
这种工作流的最大优点是,如果您确实需要一些手动检查,您可以在工作流中有一个手动步骤,一个人可以查看数据,根据需要进行更改,然后按一个按钮来移动工作流到下一步。
让规模决定条款
对于在多个国家/地区拥有数千名员工的公司实体而言,最好的抓取解决方案对于拥有 10 名员工在一个城市服务的初创公司而言可能并不划算。 因此,从其他公司汲取灵感可能没有帮助。 此外,您公司的抓取计划可能还需要在您扩大规模时进行更新。
仅刷新已更改的内容
假设您正在从电子商务网站抓取数据。 您有多个重要的数据点,例如描述、属性、退货政策、价格、评论数量、评级等。 现在,如果您定期刷新此数据,您可能更愿意以不同的时间间隔刷新不同的数据点。 例如,您可以每小时刷新一次价格,每天刷新评论和评分,每月刷新其余数据点。 这样的改变虽然看起来很小,但是当你把成本和努力乘上几百万的时候,你就会发现,只需要你需要的,就能为你省去多少爽快。
使用像 PromptCloud 这样的 DaaS 提供商
在网络抓取方面没有放之四海而皆准的方法,这就是为什么我们 PromptCloud 的团队会根据每个公司的抓取要求为他们提供定制解决方案。 我们完全可定制的解决方案允许您更新-
- 您需要从中抓取数据的网站。
- 抓取数据的频率。
- 要提取的数据点。
- 您希望使用已抓取数据的机制。
无论您插入多少源,我们的聚合器功能都可以帮助您在单个流中获取数据。
企业的日程安排很紧,他们需要工作流程快速启动和运行。 一旦我们有了需求,我们的经验可以帮助我们在短时间内建立抓取管道。 我们还通过提供端到端解决方案帮助客户理解数据中的混乱。 其他派上用场的功能是
- 完全托管的无维护服务部署到云端。
- 以强大的 SLA 为后盾的及时支持。
- 低延迟,让数据及时到达您手中。
- 根据您的要求无限扩展。
- 监控和维护整个抓取工作流程。
由于我们根据您使用的数据量收费,因此您无需担心固定费用。 与真正的 DaaS 解决方案一样,您的月度账单仅基于您的数据消耗。 所以现在就订阅我们并以合理的价格获取数据,而无需通过 4 个步骤偷工减料:
- 你给我们的要求。
- 我们为您提供示例数据。
- 如果您满意,我们将完成爬虫设置。
- 数据以您选择的格式并通过首选媒体到达您的手中。
因此,选择权在您手中,是时候在您的成本达到顶峰之前掌握网络抓取的控制权了。