返回介绍

1.4 掌握自动化数据爬取的重要性

发布于 2024-01-30 22:48:37 字数 2741 浏览 0 评论 0 收藏 0

对于大多数人来说,掌握一门像Scrapy这样很酷的技术所带来的好奇心和精神上的满足,足以激励我们。令人惊喜的是,在学习这个优秀框架的同时,我们还能享受到开发过程始于数据和社区,而不是代码所带来的好处。

1.4.1 开发健壮且高质量的应用,并提供合理规划

为了开发现代化的高质量应用,我们需要真实的大数据集,如果可能的话,在开始动手写代码之前就应该进行这一步。现代化软件开发就是实时处理大量不完善数据,并从中提取出知识和有价值的情报。当我们开发软件并应用于大数据集时,一些小的错误和疏忽难以被检测出来,就有可能导致昂贵的错误决策。比如,在做人口统计学研究时,很容易发生仅仅是由于州名过长导致数据被默认丢弃,造成整个州的数据被忽视的错误。在开发阶段,甚至更早的设计探索阶段,通过细心抓取,并使用具有生产质量的真实世界大数据集,可以帮助我们发现和修复错误,做出明智的工程决策。

另外一个例子是,假设你想要设计Amazon风格的“如果你喜欢这个商品,也可能喜欢那个商品”的推荐系统。如果你能够在开始之前,先爬取并收集真实世界的数据集,就会很快意识到有关无效条目、停产商品、重复、无效字符以及偏态分布引起的性能瓶颈等问题。这些数据将会强迫你设计足够健壮的算法,无论是数千人购买过的商品,还是零销售量的新条目,都能够很好地处理。而孤立的软件开发,可能会在几个星期的开发之后,也要面对这些丑陋的真实世界数据。虽然这两种方法最终可能会收敛,但是为你提供进度预估承诺的能力以及软件的质量,都将随着项目进展而产生显著差别。从数据开始,能够带给我们更加愉悦并且可预测的软件开发体验。

1.4.2 快速开发高质量最小可行产品

对于初创公司而言,大规模真实数据的集甚至更加必要。你可能听说过“精益创业”,这是由Eric Ries创造的一个术语,用于描述类似技术初创公司这样极端不确定条件下的业务发展过程。该框架的一个关键概念是最小可行产品(Minimum Viable ProductMVP),这种产品只有有限的功能,可以被快速开发并向有限的客户发布,用于测试反响及验证业务假设。基于获得的反馈,初创公司可能会选择继续更进一步的投资,也可能是转向其他更有前景的方向。

在该过程中的某些方面,很容易忽视与数据紧密连接的问题,这正是Scrapy所能为我们做的部分。比如,当邀请潜在的客户尝试使用我们的手机应用时,作为开发者或企业主,会要求他们评判这些功能,想象应用在完成时看起来应该如何。对于这些并非专家的人而言,这里需要的想象有可能太多了。这个差距相当于一个应用只展示了“产品1”、“产品2”、“用户433”,而另一个应用提供了“三星 UN55J6200 55英寸电视机”、用户“Richard S”给出了五星好评以及能够让你直达产品详情页面(尽管事实上我们还没有写这个页面)的有效链接等诸多信息。人们很难客观判断一个MVP产品的功能性,除非使用了真实且令人兴奋的数据。

一些初创企业将数据作为事后考虑的原因之一是认为收集这些数据需要昂贵的代价。的确,我们通常需要开发表单及管理界面,并花费时间录入数据,但我们也可以在编写代码之前使用Scrapy爬取一些网站。在第4章中,你可以看到一旦拥有了数据,开发一个简单的手机应用会有多么容易。

1.4.3 Google不会使用表单,爬取才能扩大规模

当谈及表单时,让我们来看下它是如何影响产品增长的。想象一下,如果Google的创始人在创建其引擎的第一个版本时,包含了一个每名网站管理员都需要填写的表单,要求他们把网站中每一页的文字都复制粘贴过来。然后,他们需要接受许可协议,允许Google处理、存储和展示他们的内容,并剔除大部分广告利润。你能想象解释该想法并说服人们参与这一过程所需花费的时间和精力会有多大吗?即使市场非常渴望一个优秀的搜索引擎(事实正是如此),这个引擎也不会是Google,因为它的增长过于缓慢。即使是最复杂的算法,也不能弥补数据的缺失。Google使用网络爬虫技术,在页面间跳转链接,填充其庞大的数据库。网站管理员则不需要做任何事情。实际上,反而还需要一些努力才能阻止Google索引你的页面。

虽然Google使用表单的想法听起来有些荒谬,但是一个典型的网站需要用户填写多少表单呢?登录表单、新房源表单、结账表单,等等。这些表单中有多少会阻碍应用增长呢?如果你充分了解你的受众/客户,很可能已经拥有关于他们通常使用并且很可能已经有账号的其他网站的线索了。比如,一个开发者很可能拥有Stack Overflow和GitHub的账号。那么,在获得他们允许的情况下,你是否能够抓取这些站点,只需他们提供给你用户名,就能自动填充照片、简介和一小部分近期文章呢?你能否对他们最感兴趣的一些文章进行快速文本分析,并根据其调整网站的导航结构,以及建议的产品和服务呢?我希望你能够看到如何使用自动化数据抓取替代表单,从而更好地服务你的受众,增长网站规模。

1.4.4 发现并融入你的生态系统

抓取数据自然会让你发现并考虑与你付出相关的社区的关系。当你抓取一个数据源时,很自然地就会产生一些问题:我是否相信他们的数据?我是否相信获取数据的公司?我是否需要和他们沟通以获得更正式的合作?我和他们是竞争关系还是合作关系?从其他源获得这些数据会花费我多少钱?无论如何,这些商业风险都是存在的,不过抓取过程可以帮助我们尽早意识到这些风险,并制定出缓解策略。

你还会发现自己想知道能够为这些网站和社区带来的回馈是什么。如果你能够给他们带来免费的流量,他们应该会很高兴。另一方面,如果你的应用不能给你的数据源带来一些价值,那么你们的关系可能会很短暂,除非你与他们沟通,并找到合作的方式。通过从不同源获取数据,你需要准备好开发对现有生态系统更友好的产品,充分尊重已有的市场参与者,只有在值得努力时才可以去破坏当前的市场秩序。现有的参与者也可能会帮助你成长得更快,比如你有一个应用,使用两到三个不同生态系统的数据,每个生态系统有10万个用户,你的服务可能最终将这30万个用户以一种创造性的方式连接起来,从而使每个生态系统都获益。例如,你成立了一个初创公司,将摇滚乐与T恤印花社区关联起来,你的公司最终将成为两种生态系统的融合,你和相应的社区都将从中获益并得以成长。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文