爬虫*敏*感*词*数据采集的经验和示例
优采云 发布时间: 2020-08-06 19:09本文主要介绍大量采集网站数据的经验
1. 什么样的数据可以称为大量数据:
我认为这可能是因为每个人的理解都不相同,并且给出的定义也不同. 我认为定义采集网站的数据大小不仅取决于网站中收录的数据量,还取决于采集网站的难度,采集网站的服务器容量,网络带宽和由计算机分配的计算机硬件资源. 收款人员等等. 我在这里临时称一个拥有超过1000万个URL的网站链接一个拥有大量数据的网站.
2. 具有大量数据的网站采集程序:
2.1. 采集需求分析:
作为一名数据采集工程师,我认为最重要的是做好数据采集需求分析. 首先,我们必须估计该网站的数据量,然后弄清楚要采集哪些数据,是否有必要分析目标网站的数据?所有采集的数据,因为采集的数据越多,花费的时间越多,花费的时间就越多. 资源是必需的,目标网站的压力也更大. 数据采集工程师不能对目标网站造成太大的损害以采集数据. 压力. 原则是采集尽可能少的数据以满足您自己的需求,并避免采集所有电台.
2.2. 代码编写:
由于要采集大量网站数据,因此需要编写代码以稳定运行一周甚至一个月以上,因此代码应足够强大. 通常要求网站不要更改模板,并且程序可以一直执行. 这里有一点编程技巧,我认为这很重要,即在编写代码之后,运行一两个小时,在程序中发现一些错误,对其进行修改,这种预编码测试可以确保代码的健壮性.
2.3数据存储:
当数据量为30到5千万时,无论是MySQL,Oracle还是SQL Server,都无法将其存储在一个表中. 目前,您可以使用单独的表进行存储. 数据采集之后,当插入数据库时,您可以执行诸如批量插入之类的策略. 确保您的存储不受数据库性能和其他方面的影响.
2.4分配的资源:
由于目标网站上的数据很多,我们不可避免地不得不使用大带宽,内存,CPU和其他资源. 目前,我们可以构建一个分布式采集器系统来合理地管理我们的资源.
3. 爬行者的道德观
对于一些初级采集工程师来说,为了更快地采集数据,通常会打开许多多进程和多线程. 结果是对目标网站进行了dos攻击. 结果是目标网站果断地升级了网站并增加了许多反爬升策略,这种对抗对购置工程师也极为不利. 个人建议下载速度不应超过2M,多进程或多线程不应超过一百.
示例:
要采集的目标网站有4000万个数据. 该网站的防爬策略是阻止IP,所以我专门找到了一台机器,并打开了200多个进程来维护IP池. ip池中的可用ip为500 -1000,并确保该ip具有高可用性.
编写代码后,它可以在两台计算机上运行. 该机器每天最多打开64个多线程,下载速度不超过1M.
个人知识有限,请多多包涵