`

如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求?

阅读更多

网站经常会被各种爬虫光顾,有的是搜索引擎爬虫,有的不是,通常情况下这些爬虫都有UserAgent,而我们知道UserAgent是可以伪装的,UserAgent的本质是Http请求头中的一个选项设置,通过编程的方式可以给请求设置任意的UserAgent。 

所以通过UserAgent判断请求的发起者是否是搜索引擎爬虫(蜘蛛)的方式是不靠谱的,更靠谱的方法是通过请求者的ip对应的host主机名是否是搜索引擎自己家的host的方式来判断。

要获得ip的host,在windows下可以通过nslookup命令,在linux下可以通过host命令来获得,例如:

这里我在windows下执行了nslookup ip 的命令,从上图可以看到这个ip的主机名是crawl-66-249-64-119.googlebot.com。 这说明这个ip是一个google爬虫,google爬虫的域名都是 xxx.googlebot.com.

我们也可以通过python程序的方式来获得ip的host信息,代码如下:

import socket
def getHost(ip):
    try:
        result=socket.gethostbyaddr(ip)
        if result: return result[0], None
    except socket.herror,e:
        return None, e.message

上述代码使用了socket模块的gethostbyaddr的方法获得ip地址的主机名。

常用蜘蛛的域名都和搜索引擎官网的域名相关,例如:

  • 百度的蜘蛛通常是baidu.com或者baidu.jp的子域名
  • google爬虫通常是googlebot.com的子域名
  • 微软bing搜索引擎爬虫是search.msn.com的子域名
  • 搜狗蜘蛛是crawl.sogou.com的子域名

基于以上原理,我写了一个工具页面提供判断ip是否是真实搜索引擎的工具页面,该页面上提供了网页判断的工具和常见的google和bing的搜索引擎爬虫的ip地址。

页面地址:http://outofmemory.cn/tools/is-search-engine-spider-ip/ 

本文提供的代码是python代码,通过JAVA代码也是可以实现的,原理是一样的。

1
0
分享到:
评论

相关推荐

    如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求

    由于这些爬虫都有UserAgent,所以很多朋友使用UserAgent判断请求的发起者是否是搜索引擎爬虫的方式是很不准确的,接下来,通过本篇文章给大家介绍准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求的方法,需要的朋友...

    大数据爬虫技术第1章 初识爬虫.ppt

    网络爬虫,又称为网页蜘蛛、网络机器人,是一种按照一定的规则,自动请求万维网网站并提取网络数据的程序或脚本。 结 论 这里的数据是指互联网上公开的并且可以访问到的网页信息,而不是网站的后台信息(没有权限...

    Java网络爬虫(蜘蛛)源码.zip

    这些爬虫通常用于搜索引擎索引、数据挖掘、市场研究或任何需要从大量网页中提取有用信息的场景。 在Java中,编写网络爬虫需要掌握网络编程、HTML解析、多线程以及可能的数据存储和处理等相关知识。下面是一段关于...

    基于Java实现网络爬虫(蜘蛛)

    目的: 实现自动化地从互联网中收集信息的工具,可以用于网站数据抓取、信息检索、搜索引擎建设等。 功能特点: 网页抓取: 爬虫程序根据指定的URL,访问网页并下载页面内容。 信息解析: 使用Jsoup等HTML解析库...

    java项目源码之网络爬虫(蜘蛛)的实现.rar

    爬虫的应用领域广泛,包括搜索引擎、数据挖掘、信息检索等,通过抓取网络数据,可以帮助用户获取所需信息,并支持各种数据分析和应用。然而,使用爬虫需要遵守网站的使用规范和法律法规,避免对网站造成不必要的压力...

    关于python爬虫开发以及举例

    爬虫广泛应用于搜索引擎、数据分析、信息聚合、内容监测等领域。 爬虫的基本工作原理如下: 发送请求:爬虫首先向目标网站发送HTTP请求。 接收响应:网站服务器接收到请求后,返回HTML、JSON等格式的数据。 解析...

    爬虫系统:达尔文树皮蜘蛛,能结出世界上最大最牢固的网.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    网络爬虫调研报告.doc

    在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个称为 ...

    网络爬虫调研报告(1).doc

    在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个称为 ...

    网络爬虫调研报告(2).doc

    在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个...

    python爬虫之requests的使用

    网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 只要是浏览器能做的事情,原则上,爬虫都能够做 通用爬虫和聚焦爬虫 通用...

    Python程序基础:网络爬虫的概念及数据抓取.pptx

    网络爬虫不仅能够为搜索引擎采集网络信息,而且还可以作为定向信息采集器,定向采集某些网站中的特定信息。 对于定向信息的爬取,网络爬虫主要采取数据抓取、数据解析、数据入库的操作流程。;Python提供了许多与网络...

    Java网络蜘蛛(爬c)源码.zip

    网络爬虫是搜索引擎、数据挖掘和信息收集等领域的重要工具。 Java的网络爬虫通常基于Java的网络编程库,如URLConnection或Apache HttpClient等,以及HTML解析库,如Jsoup。其工作原理通常包括以下步骤: 1. URL解析...

    python爬虫爬取网页数据并解析数据

    网络爬虫可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取网站上面的图片,比如有些朋友将某些网站上的图片全部爬取下来,集中进行浏览,同时,网络爬虫也可以用于金融投资领域,比如可以自动爬取一些...

    python-爬虫.pdf

    python_爬⾍ 1、⽹络爬⾍ 1、定义:⽹络蜘蛛,⽹络机器⼈,抓取⽹络数据的程序 2、总结:⽤Python程序去模仿⼈去访问⽹站,模仿的越逼真越好 ...1、通⽤的⽹络爬⾍(搜索引擎引⽤,需要遵守robots协议

    python urllib爬虫模块使用解析

    前言 网络爬虫也称为网络蜘蛛、网络机器人,...1、通用网络爬虫:搜索引擎使用,遵守robots协议(君子协议) robots协议 :网站通过robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。https://www.taobao

    浅析python 通爬和聚焦爬

    网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据, 比如:如果响应内容是html,分析dom结构,进行dom解析、或者...

    Rearchor:一个框架,使简单的搜索引擎

    轻量级搜索引擎 运用案例: 建议使用IOC进行装配/配置,易于管理; 实现描述: 责任链制定爬虫规则 请求异常重回线程池请求池 队列-消费者生产者-拥塞控制 lucene core 分词 + search高亮 + 某著名词典 netty展示页面 可...

Global site tag (gtag.js) - Google Analytics