识别User Agent屏蔽一些Web爬虫防采集

from:https://jamesqi.com/%E5%8D%9A%E5%AE%A2/%E8%AF%86%E5%88%ABUser_Agent%E5%B1%8F%E8%94%BD%E4%B8%80%E4%BA%9BWeb%E7%88%AC%E8%99%AB%E9%98%B2%E9%87%87%E9%9B%86

  自从做网站以来,大量自动抓取我们内容的爬虫一直是个问题,防范采集是个长期任务,这篇是我5年前的博客文章:《Apache中设置屏蔽IP地址和URL网址来禁止采集》,另外,还可以识别User Agent来辨别和屏蔽一些采集者,在Apache中设置的代码例子如下:

RewriteCond %{HTTP_USER_AGENT} ^(.*)(DTS\sAgent|Creative\sAutoUpdate|HTTrack|YisouSpider|SemrushBot)(.*)$
RewriteRule .* - [F,L]

  屏蔽User Agent为空的代码:

RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule .* - [F]

  屏蔽Referer和User Agent都为空的代码:

RewriteCond %{HTTP_REFERER} ^$ [NC]
RewriteCond %{HTTP_USER_AGENT} ^$ [NC]
RewriteRule .* - [F]

  下面把一些可以屏蔽的常见采集软件或者机器爬虫的User Agent的特征关键词列一下供参考:

  • User-Agent
  • DTS Agent
  • HttpClient
  • Owlin
  • Kazehakase
  • Creative AutoUpdate
  • HTTrack
  • YisouSpider
  • baiduboxapp
  • Python-urllib
  • python-requests
  • SemrushBot
  • SearchmetricsBot
  • MegaIndex
  • Scrapy
  • EMail Exractor
  • 007ac9
  • ltx71

  其它也可以考虑屏蔽的:

  • Mail.RU_Bot:http://go.mail.ru/help/robots
  • Feedly
  • ZumBot
  • Pcore-HTTP
  • Daum
  • your-server
  • Mobile/12A4345d
  • PhantomJS/2.1.1
  • archive.org_bot
  • AcooBrowser
  • Go-http-client
  • Jakarta Commons-HttpClient
  • Apache-HttpClient
  • BDCbot
  • ECCP
  • Nutch
  • cr4nk
  • MJ12bot
  • MOT-MPx220
  • Y!OASIS/TEST
  • libwww-perl

  一般不要屏蔽的主流搜索引擎特征:

  • Google
  • Baidu
  • Yahoo
  • Slurp
  • yandex
  • YandexBot
  • MSN

  一些常见浏览器或者通用代码也不要轻易屏蔽:

  • FireFox
  • Apple
  • PC
  • Chrome
  • Microsoft
  • Android
  • Mail
  • Windows
  • Mozilla
  • Safar
  • Macintosh

识别User Agent屏蔽一些Web爬虫防采集的更多相关文章

  1. 如何让你的scrapy爬虫不再被ban之二(利用第三方平台crawlera做scrapy爬虫防屏蔽)

    我们在做scrapy爬虫的时候,爬虫经常被ban是常态.然而前面的文章如何让你的scrapy爬虫不再被ban,介绍了scrapy爬虫防屏蔽的各种策略组合.前面采用的是禁用cookies.动态设置use ...

  2. Python爬虫防封杀方法集合

      Python爬虫防封杀方法集合     mrlevo520 2016.09.01 14:20* 阅读 2263喜欢 38       Python 2.7 IDE Pycharm 5.0.3 前言 ...

  3. 第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码

    第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码 打码接口文件 # -*- coding: cp936 -*- import sys import os ...

  4. 第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理

    第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术.设置用户代理 如果爬虫没有异常处理,那么爬行中一旦出现错误,程序将崩溃停止工作,有异常处理即使出现错误也能继续执 ...

  5. 第三百二十二节,web爬虫,requests请求

    第三百二十二节,web爬虫,requests请求 requests请求,就是用yhthon的requests模块模拟浏览器请求,返回html源码 模拟浏览器请求有两种,一种是不需要用户登录或者验证的请 ...

  6. Web爬虫入门

    1.0示例学习:Web爬虫 public class WebCrawler { // 种子url private static String url = "http://www.cnblog ...

  7. Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用

    问题:Jenkins 2.16.3默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 打开&quo ...

  8. Jenkins的配置从节点中默认没有Launch agent via Java Web Start选项问题

    Jenkins的配置从节点中默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 1:打开" ...

  9. Jenkins的配置从节点中默认没有Launch agent via Java Web Start,该如何配置使用

    Jenkins的配置从节点中默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 1:打开" ...

随机推荐

  1. 阿里云centos7.2 安装mysql 6.5

    [root@111 ~]# uname -aLinux bxhs 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_ ...

  2. mysql 数据操作 单表查询 简单查询 避免重复DISTINCT

    创建数据库company create database company charset=utf8; use company; company.employee 员工id id int 姓名 emp_ ...

  3. C#让应用程序只运行一个实例的几种方法

    一 判断是否有相同的实例已经运行 1 根据“Mutex”判断是否有相同的实例在运行 /// <returns>已有实例运行返回true,否则为false</returns>pu ...

  4. sysbench 0.4.12安装

    前提:mysql已安装完成,请参考http://www.cnblogs.com/lizhi221/p/6813907.html   安装依赖环境包: yum install -y bzr yum in ...

  5. Linux系统——Inotify事件监控工具

    每秒传输文件200个 Rsync放在定时任务中也只是一分钟执行一回,要想达到实时的效果,为防止单点nfs架构故障,再启动一台nfs服务器作为主nfs服务器的备份服务器,此时需要inotify实时同步数 ...

  6. ZOJ Monthly, March 2018 Solution

    A - Easy Number Game 水. #include <bits/stdc++.h> using namespace std; #define ll long long #de ...

  7. 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) Solution

    A:Exam Solved. 温暖的签. #include<bits/stdc++.h> using namespace std; ; int k; char str1[maxn], st ...

  8. hdu 5068 线段树加+dp

    这题说的是 有n 层每层 有两个门 每个门 可以到达上一层的两个门,然后求从a 层到达b 层的方案总数, 不能后退, 在同一层中不能从第一个门到达另一层 我们只要我们可以对于每个 区间内 有dp[o] ...

  9. uva1424

    Traveling salesmen of nhn. (the prestigious Korean internet company) report their current location t ...

  10. Flux 单向数据流

    Flux 的核心就是一个简单的约定:视图层组件不允许直接修改应用状态,只能触发 action.应用的状态必须独立出来放到 store 里面统一管理,通过侦听 action 来执行具体的状态操作. 所谓 ...