Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据坏机器人列表测试用户代理字符串的方法?_Python_Linux_Apache2_Debian_User Agent - Fatal编程技术网

Python 根据坏机器人列表测试用户代理字符串的方法?

Python 根据坏机器人列表测试用户代理字符串的方法?,python,linux,apache2,debian,user-agent,Python,Linux,Apache2,Debian,User Agent,我通过Apache配置文件中的一长串坏机器人用户代理字符串拒绝坏机器人进入我的Apache服务器,如下所示: <IfModule mod_setenvif.c> SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot SetEnvIfNoCase User-Agent "Baiduspider" bad_bot SetEnvIfNoCase User-Agent "Exabot" bad_bot ... <Directory /> Or

我通过Apache配置文件中的一长串坏机器人用户代理字符串拒绝坏机器人进入我的Apache服务器,如下所示:

<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot
SetEnvIfNoCase User-Agent "Baiduspider" bad_bot
SetEnvIfNoCase User-Agent "Exabot" bad_bot
...
<Directory />
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Directory>
</IfModule>
问题:是否有办法找出匹配的坏机器人用户代理字符串导致请求被拒绝,例如通过日志,或者有办法根据坏机器人列表提供上述用户代理字符串,以查看导致匹配的原因


谢谢。

嗯,你有1600多个坏机器人的列表。这听起来像是对CPU周期的完全浪费。如果这些机器人确实是糟糕的机器人,是什么阻止它们使用桌面或移动浏览器用户代理字符串,并使其无法被您的配置检测到:现在回答您的问题,您应该使用正则表达式来匹配您的机器人,这样您就可以避免mod_setenvif的子字符串匹配。您的SetEnvifLocase用户代理AhrefsBot bad_bot将成为SetEnvifLocase用户代理^AhrefsBot$bad_bot,因此在此之后,您的误报将消失。160,而不是1600…我的错。如果使用正则表达式模式,它工作正常吗?
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)"