php禁止网页抓取(【】访问日志如下图解决解决思路(一) )
优采云 发布时间: 2022-01-31 08:04php禁止网页抓取(【】访问日志如下图解决解决思路(一)
)
问题
过去客户可以正常访问的网站现在很慢,有时甚至拒绝访问。通过查看Nginx访问日志,发现大量请求指向同一个页面,并且访问的客户端IP地址不断变化,没有太多规则。很难通过限制IP来拒绝访问。但是请求的用户代理被标记为 Bytespider,这是一种流氓爬虫。访问日志如下:
解决
解决方法:因为user-agent被标记了Bytespider爬虫,这样可以通过Nginx规则限制流氓爬虫的访问,直接返回403错误。
1、在/etc/nginx/conf.d目录下新建文件deny_agent.config配置文件(由于安装了Nginx,站点配置文件的路径可能不同):
#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|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;
}
2、在对应的站点配置文件中收录deny_agent.config配置文件(注意是在服务器中):
3、重启Nginx,建议通过nginx -s reload平滑重启。重启前请先使用 nginx -t 命令检查配置文件是否正确。
4、使用curl命令模拟访问,看看配置是否生效(如果返回403 Forbidden,则配置OK):
附录: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 内容采集
Indy Library 扫描
FlightDeckReports Bot 无用爬虫
Linguee Bot 无用爬虫<br />