从千亿页面上提取数据的经验总结

开课吧小一2021-06-10 15:35

点赞
有用
分享分享

    众所周知想要更好地完成数据分析,除了需要掌握良好的方式方法之外,还需要做好数据提取工作。那么从千亿页面上提取数据该如何做呢?

从千亿页面上提取数据的经验总结

    如今从网上抓取数据看似非常容易。有许多开源库和框架、可视化抓取工具和数据提取工具,可以很容易地从一个网站上抓取数据。但是,当你想大规模地搜索网站时,很快就会感觉到非常棘手。

    大规模抓取网页的要点:

    与标准的抓取网页应用程序不同,大规模抓取电子商务的产品数据将面临一系列独特的挑战,这使得网页抓取异常艰难。

    从本质上来说,这些困难可以归结为两个方面:速度和数据质量。

    通常时间是一个限制性约束,因此大规模抓取需要网络爬虫以非常高的速度抓取页面,并不会影响数据质量。这种对速度的要求造成大量抓取产品数据富有非常大的挑战性。

    挑战1:杂乱且变幻无常的网页格式。杂乱且变化无常的网页格式可能是最常见的挑战,也可能不是最令人感兴趣的挑战,但它是迄今为止大规模提取数据时面临的最大挑战。这项挑战的关键不在于复杂性,而是需要花费大量时间和资源去处理。

从千亿页面上提取数据的经验总结

    挑战2:可扩展性架构。你将面临的下一个挑战是:构建一个爬虫基础架构,该架构可以随着每天请求数量的增加而扩展,而不会降低性能。

    当大规模提取产品数据时,简单的网页爬虫只能连续地抓取数据,而不会节选。通常,一个连续的网页抓取会循环发送请求,一个接一个,每个请求需要2-3秒才能完成。

    如果爬虫每天都请求量小于4万个的话(每2秒发送一个请求,意味着每天可以发送43,200个请求),这个方法还可以。但是,一旦请求数量超过这个数,你就需要切换到每天可以发送几百万请求且不会降低性能的爬虫架构。

    正如上述讨论,速度是大规模抓取产品数据的关键。你需要确保在一定时间内(通常为一天)找到并抓取所有所需的产品页面。为此,你需要执行以下操作:

    从产品提取中分离产品搜索。为了大规模提取产品数据,你需要从产品提取爬虫中分离产品搜索爬虫。

    为产品提取分配更多资源。由于每个产品类别“货架”可以包含10到100个产品,且与提取产品URL相比,提取产品数据需要更多资源,因此搜索爬虫的速度通常比产品抽取爬虫更快。

从千亿页面上提取数据的经验总结

    挑战3:维持吞吐量性能。在提取大量数据时,我们必须尽可能寻找可以将周期时间降到最小、并在现有硬件资源的基础上将爬虫性能提高到最大的方法。所有这些都必须减少每个请求的时间,哪怕是几毫秒。

    为此,你的团队需要深入了解正在使用的网页抓取框架、代理管理和硬件,才能更好地调优,以获取最佳性能。

    大规模抓取的时候,我们始终应该努力在尽可能少的请求次数内提取所需的确切数据。任何额外的请求或数据提取都会降低抓取网站的速度。

    在设计爬虫时,请记住以下几点:

    1、只是用没有头部的浏览器,如Splash或Puppeteer等,将JavaScript渲染放到最后。抓取网页时,使用没有头部的浏览器渲染JavaScript会非常耗费资源,并且会严重影响到抓取速度;

    2、如果无需向每个产品页面发送请求,也可以从货架页面(例如产品名称、价钱、口碑等)获取数据,则不要请求产品页面;

    3、除非有必要,否则不要请求或提取图像。

    挑战4:反机器人策略。在大规模抓取电子商务网站的时候,肯定会遇到使用反机器人策略的网站。

    对于大多数小型网站来说,他们的反机器人策略非常基本(禁止IP提出超额请求)。然而,对于亚马逊等大型电子商务网站说,他们会使用非常成熟的反机器人策略,例如DistilNetworks、Incapsula或Akamai等,这会让提取数据变得更加困难。

    挑战5:数据质量。从数据科学家的角度来看,网页抓取项目最重要的考虑因素是提取的数据质量。大规模抓取更加关注数据的质量。

    如果每天需要提取几百万个数据点,那么手工验证所有数据是否干净完整是不可能的。一个不小心脏数据或不完整的数据就会进入数据源,并破坏数据分析工作。

    当店铺有多个版本(不同语言、地区等)或从不同店铺抓取数据时,数据质量尤为重要。

    除了仔细的QA流程外,创建爬虫的设计阶段,通过互相审查和测试爬虫的代码可以确保以最可靠的方式提取所需的数据。确保数据高质量的最佳方法是开发自动化QA监视系统。

    以上就是小编为大家整理的“从千亿页面上提取数据的经验总结”一文,更多相关信息尽在开课吧数据分析教程频道。

相关推荐:

2021大厂高频面试题精选,0元免费领

福利来袭,C++经典项目实战免费领取!

职场进阶必备,数据分析职业能力特训营

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享