网站经常会被各种爬虫光顾,有的是搜索引擎爬虫,有的不是,通常情况下这些爬虫都有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代码也是可以实现的,原理是一样的。
相关推荐
由于这些爬虫都有UserAgent,所以很多朋友使用UserAgent判断请求的发起者是否是搜索引擎爬虫的方式是很不准确的,接下来,通过本篇文章给大家介绍准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求的方法,需要的朋友...
网络爬虫,又称为网页蜘蛛、网络机器人,是一种按照一定的规则,自动请求万维网网站并提取网络数据的程序或脚本。 结 论 这里的数据是指互联网上公开的并且可以访问到的网页信息,而不是网站的后台信息(没有权限...
这些爬虫通常用于搜索引擎索引、数据挖掘、市场研究或任何需要从大量网页中提取有用信息的场景。 在Java中,编写网络爬虫需要掌握网络编程、HTML解析、多线程以及可能的数据存储和处理等相关知识。下面是一段关于...
目的: 实现自动化地从互联网中收集信息的工具,可以用于网站数据抓取、信息检索、搜索引擎建设等。 功能特点: 网页抓取: 爬虫程序根据指定的URL,访问网页并下载页面内容。 信息解析: 使用Jsoup等HTML解析库...
爬虫的应用领域广泛,包括搜索引擎、数据挖掘、信息检索等,通过抓取网络数据,可以帮助用户获取所需信息,并支持各种数据分析和应用。然而,使用爬虫需要遵守网站的使用规范和法律法规,避免对网站造成不必要的压力...
爬虫广泛应用于搜索引擎、数据分析、信息聚合、内容监测等领域。 爬虫的基本工作原理如下: 发送请求:爬虫首先向目标网站发送HTTP请求。 接收响应:网站服务器接收到请求后,返回HTML、JSON等格式的数据。 解析...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个称为 ...
在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个称为 ...
在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个...
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 只要是浏览器能做的事情,原则上,爬虫都能够做 通用爬虫和聚焦爬虫 通用...
网络爬虫不仅能够为搜索引擎采集网络信息,而且还可以作为定向信息采集器,定向采集某些网站中的特定信息。 对于定向信息的爬取,网络爬虫主要采取数据抓取、数据解析、数据入库的操作流程。;Python提供了许多与网络...
网络爬虫是搜索引擎、数据挖掘和信息收集等领域的重要工具。 Java的网络爬虫通常基于Java的网络编程库,如URLConnection或Apache HttpClient等,以及HTML解析库,如Jsoup。其工作原理通常包括以下步骤: 1. URL解析...
网络爬虫可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取网站上面的图片,比如有些朋友将某些网站上的图片全部爬取下来,集中进行浏览,同时,网络爬虫也可以用于金融投资领域,比如可以自动爬取一些...
python_爬⾍ 1、⽹络爬⾍ 1、定义:⽹络蜘蛛,⽹络机器⼈,抓取⽹络数据的程序 2、总结:⽤Python程序去模仿⼈去访问⽹站,模仿的越逼真越好 ...1、通⽤的⽹络爬⾍(搜索引擎引⽤,需要遵守robots协议
前言 网络爬虫也称为网络蜘蛛、网络机器人,...1、通用网络爬虫:搜索引擎使用,遵守robots协议(君子协议) robots协议 :网站通过robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。https://www.taobao
网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据, 比如:如果响应内容是html,分析dom结构,进行dom解析、或者...
轻量级搜索引擎 运用案例: 建议使用IOC进行装配/配置,易于管理; 实现描述: 责任链制定爬虫规则 请求异常重回线程池请求池 队列-消费者生产者-拥塞控制 lucene core 分词 + search高亮 + 某著名词典 netty展示页面 可...