我正在使用selenium python,我想知道如何在24小时内有效地抓取超过50,000个数据点。例如,当我在网页'insight.com‘上搜索产品时,抓取器大约需要3.5秒来搜索产品并获取其价格,这意味着对于大量数据,抓取器需要几天时间。从使用线程同时查找多个产品的一部分,我还可以如何加速这个过程?我只有一台笔记本电脑,将不得不同时抓取其他六个类似的网站,因此不想要太多的线程,计算机的运行速度将显着减慢。人们如何实现在如此短的时间内抓取大量数据?
发布于 2020-06-18 05:40:15
如果您不再使用selenium模块,而是使用更时尚、更优雅的模块,比如requests,那么您可以在几分钟内完成这项工作。
如果你成功地对正在处理的请求进行反向工程,并自己发送它们,你可以将其与线程配对,以每秒抓取大约50个“数据点”,或多或少(取决于一些因素,如处理和互联网连接速度)。
发布于 2020-08-31 09:36:36
找到一个API并使用它!web抓取和API的目标都是访问web数据。
Web抓取允许您通过使用web抓取软件从任何网站提取数据。另一方面,API为您提供了对所需数据的直接访问。
因此,您可能会发现自己处于这样一种情况:可能没有API来访问您想要的数据,或者对API的访问可能太有限或太昂贵。
在这些情况下,只要数据在网站上可用,web抓取就允许您访问这些数据。
例如,您可以使用web抓取器从Amazon提取产品数据信息,因为它们不提供API来访问这些数据。然而,如果你能访问API,你可以抓取你想要的所有数据,超级快!这类似于在prem上的数据库中进行查询,这是非常快和非常有效的,而不是刷新网页,等待所有元素加载,直到所有元素都加载完毕,然后才能使用数据,然后执行then.do。
https://stackoverflow.com/questions/62438727
复制相似问题