大数据时代来临,数据采集推动着数据分析,数据分析推动发展,由此网络爬虫风靡一时。但在网络爬虫运行的过程中会遇到很多问题,如爬取速度、IP被封、爬取受限等等,举个简单的荔枝,当爬取数据爬的正起劲时,突然蹦出403 Forbidden,可谓十分闹心。
出现问题不可避免,但我们也不要心慌不要急,关键是要找出原因,然后解决问题,比如403 Forbidden,这个错误的原因就有好几种。
一、直接原因
1、你的IP被列入黑名单。
2、你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了。
3、网站域名解析到了空间,但空间未绑定此域名。
4、你的网页脚本文件在当前目录下没有执行权限。
5、在不允许写/创建文件的目录中执行了创建/写文件操作。
6、以http方式访问需要ssl连接的网址。
7、浏览器不支持SSL 128时访问SSL 128的连接。
8、在身份验证的过程中输入了错误的密码。
9、DNS解析错误,手动更改DNS服务器地址。
10、连接的用户过多,可以过后再试。
11、服务器繁忙,同一IP地址发送请求过多,遭到服务器智能屏蔽。
二、逻辑原因
403 Forbidden是HTTP协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。在HTTP请求的方法不是“HEAD”,并且服务器想让客户端知道为什么没有权限的情况下,服务器应该在返回的信息中描述拒绝的理由。在服务器不想提供任何反馈信息的情况下,服务器可以用404 Not Found代替403 Forbidden。
找出了403 forbidden是由什么原因造成的,那么解决403 forbidden错误的方法就可以对症下药了。
1、重建dns缓存
对于一些常规的403 forbidden错误,马海祥建议大家首先要尝试的就是重建dns缓存,在运行中输入cmd,然后输入ipconfig /flushdns即可。如果不行的话,就需要在hosts文件里把主页解析一下了。
同时,查看是否在网站虚拟目录中添加默认文档,一般默认文档为:index.html;index.asp;index.php;index.jsp;default.htm;default.asp等,如下图所示:
403 Forbidden错误的原因和解决方法-马海祥博客
2、修改文件夹安全属性
用以下命令修改文件夹安全属性
chcon -R -t httpd_user_content_t public_html/
所用命令解析:
ls -Z -d public_html/
#显示文件/目录的安全语境-Z, –context
Display security context so it fits on most displays. Displays only mode, user, group, security context and file name.-d, –directory
list directory entries instead of contents, and do not dereference symbolic links
chcon -R -t httpd_user_content_t public_html/
#修改文件/目录的安全语境-R, –recursive
change files and directories recursively-t, –type
set type TYPE in the target security context
3、关于apache导致的403 forbidden错误的解决办法
打开apache的配置文件httpd.conf,找到这段代码:
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
有时候由于配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
之所以会出现错误,是因为大多数的国外主机在配置Apache的时候启用了mod_security,也就是开启了安全检查,如果提交的信息中包含select , % , bin等关键字,Apache就会禁止,并给出403,404,500等错误。
4、使用优质的代理IP也是能够有效的避免遭遇403 Forbidden的重要手段,站大爷代理IP平台可以提供海量的IP资源,高效稳定,有效率高,性价比高,值得拥有。