php禁止网页抓取(网站反爬虫的原因常见手段设置站点配置文件)

优采云 发布时间: 2022-02-17 01:15

  php禁止网页抓取(网站反爬虫的原因常见手段设置站点配置文件)

  一、概述网站反爬虫原因

  常见的反爬虫方法

  1. 根据 IP 访问频率阻止 IP

  2. 设置账号登录时间,账号访问过多会被封禁

  设置账号登录限制,只有登录才能显示内容

  设置账号登录时长,超过时间自动退出

  3. 弹出数字验证码和图片确认验证码

  爬虫访问次数过多,弹出验证码要求输入

  4. API 接口限制

  限制登录账户每天调用后端API接口的次数

  加密后台api返回的信息

  二、nginx反爬设置站点配置文件

  因为user-agent标记了Bytespider爬虫,这样可以通过Nginx规则限制流氓爬虫的访问,直接返回403错误。

  修改对应的站点配置文件(注意是在服务器中)

  添加红色部分

  server {

listen 80 default_server;

listen [::]:80 default_server;

index index.html index.htm index.nginx-debian.html;

server_name _;

location / {

try_files $uri $uri/ =404;

}

#forbidden Scrapy if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {

return 403;

}

#forbidden UA

if ($http_user_agent ~ "Bytespider|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|python-requests|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) {

return 403;

}

#forbidden not GET|HEAD|POST method access

if ($request_method !~ ^(GET|HEAD|POST)$) {

return 403; }

}

  附录:UA 集合

  

  

  FeedDemon 内容采集

BOT/0.1 (BOT for JCE) sql注入

CrawlDaddy sql注入

Java 内容采集

Jullo 内容采集

Feedly 内容采集

UniversalFeedParser 内容采集

ApacheBench cc攻击器

Swiftbot 无用爬虫

YandexBot 无用爬虫

AhrefsBot 无用爬虫

YisouSpider 无用爬虫(已被UC神马搜索收购,此蜘蛛可以放开!)

jikeSpider 无用爬虫

MJ12bot 无用爬虫

ZmEu phpmyadmin 漏洞扫描

WinHttp 采集cc攻击

EasouSpider 无用爬虫

HttpClient tcp攻击

Microsoft URL Control 扫描

YYSpider 无用爬虫

jaunty wordpress爆破扫描器

oBot 无用爬虫

Python-urllib 内容采集

Python-requests 内容采集

Indy Library 扫描

FlightDeckReports Bot 无用爬虫

Linguee Bot 无用爬虫

使用python验证

  查看代码

  蟒蛇验证

  使用请求模块

  import requests

# 最基本的不带参数的get请求

r = requests.get('http://192.168.28.229')

print(r.content)

  使用 urllib 模块

  import urllib.request

response = urllib.request.urlopen('http://192.168.28.229/')

print(response.read().decode('utf-8'))

  返回 403 表示它有效。

  b'\r\n403 Forbidden\r\n\r\n403 Forbidden\r\nnginx\r\n\r\n\r\n'

  三、站点范围的保护设置图

  

  第一层 robots.txt

  Robots 是 网站 和爬虫之间的协议。它告诉相应的爬虫简单直接的txt格式文本所允许的权限。也就是说,robots.txt是要在搜索引擎访问网站时查看的。的第一个文件。

  注意:只规定协议,是否允许爬取数据收录,不影响网页访问。

  注意:对于手动爬虫技术人员,一般直接忽略。

  如果所有爬虫都不允许访问,内容如下:

  User-agent: *

Disallow: /

  第二层useragent特征拦截

  因为user-agent标记了Bytespider爬虫,这样可以通过Nginx规则限制流氓爬虫的访问,直接返回403错误。

  具体操作请看上面的nginx配置。

  注意:这可以阻止一些爬虫访问,以及初级爬虫。

  第三层JS发送鼠标点击事件

  有的网站,可以从浏览器打开正常页面,但是requests中会要求输入验证码或者重定向到其他页面。

  原理:点击登录时触发js加密代码,复杂加密算法参数+时间戳+sig值,后台限制参数+时间。验证成功后,即可登录。

  备注:爬虫高手需要模拟浏览器行为、加载js代码和图片识别才能正常登录。

  第 4 层后台接口限制

  1. 根据IP访问频率封锁IP(注意:频率一定要控制好,否则容易误伤。)

  2. 设置账号登录时间,账号访问过多被封禁。

  设置帐户的登录限制。只有登录后才能显示内容。设置账号登录时长,时间到自动退出。

  3.弹出数字验证码和图片确认验证码

  爬虫访问次数过多,前端弹出验证码要求输入

  4.API 接口限制

  每天登录账号,请求后端api接口时,调用次数是有限的。加密后台api返回的信息

  通过这4层设置,可以有效保护数据安全。

  本文参考链接:

  :///tulintao/p/11616640.html

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线