当前位置: 首页 > 后端技术 > Python

爬虫数据是如何收集和组织的?

时间:2023-03-25 21:19:28 Python

有些用户一直很好奇爬虫识别网站上的爬虫数据是如何组织的。今天,我们将揭示爬虫数据是如何收集和排序的。通过查询IP地址获取rDNS我们可以通过爬虫的IP地址反向查询rDNS,例如:我们使用反向DNS查找工具找到这个IP:116.179.32.160,rDNS为:baiduspider-116-179-32-160.crawl.baidu.com从上面可以大致判断应该是百度搜索引擎蜘蛛。由于Hostname是可以伪造的,所以我们只有反向查找,仍然不准确。我们也需要向前看。我们使用ping命令查找baiduspider-116-179-32-160.crawl.baidu.com是否可以解析为:116.179.32.160。从下图中可以看到baiduspider-116-179-32-160.crawl.baidu.com解析到116.179.32.160的IP地址,说明无疑是百度搜索引擎爬虫。并不是所有的爬虫在搜索ASN相关信息时都符合上述规定。大多数爬虫在反向搜索中找不到任何结果。我们需要查询IP地址的ASN信息来判断爬虫信息是否正确。例如:这个IP是74.119.118.20,我们通过查询IP信息可以知道这个IP地址是美国加州Sunnyvale的IP地址。从ASN信息可以看出他是CriteoCorp的IP。上图是criteo爬虫通过日志记录的记录信息。黄色部分是它的User-agent,后面是它的IP。这个记录没有错(这个IP确实是CriteoBot的IP地址)。一些爬虫发布通过官方爬虫文档发布的IP地址段。我们会将官方公布的爬虫IP地址段直接保存到数据库中。这是一种简单快速的方法。通过公共日志,我们经常可以在网上查看公共日志。比如下图是我找到的公共日志记录:我们可以根据User-agent分析日志记录,判断哪些是爬虫,哪些是访问者。丰富了我们的爬虫记录数据库。小结通过以上四种方式,详细说明了爬虫识别网站是如何收集和整理爬虫数据的,同时又是如何保证爬虫数据的准确性和可靠性的。当然,在实际操作过程中,并不仅仅是以上四种方式,只是用的比较少,这里就不做介绍了。