爬虫之遇到403forbidden,你该怎么办?

author author     2023-01-17     277

关键词:

大数据时代下,数据采集推动着数据分析,数据分析推动发展。但是在这个过程中会出现很多问题。拿最简单最基础的爬虫采集数据为例,过程中就会面临,IP被封,爬取受限、违法操作等多种问题,当你采集数据最起劲儿的时候,突然网页跳出403 Forbidden的提示。
所以在爬取数据之前,一定要了解好 预爬网站是否涉及违法操作,找到合适的代理IP访问网站等一系列问题,太阳HTTP服务应运而生。
让我们先来看一下你所遭遇的403错误到底是怎么回事儿吧!

一、导致403错误出现的直接原因
1、你的IP被列入黑名单。
2、你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了。
3、网站域名解析到了空间,但空间未绑定此域名。
4、你的网页脚本文件在当前目录下没有执行权限。
5、在不允许写/创建文件的目录中执行了创建/写文件操作。
6、以http方式访问需要ssl连接的网址。
7、浏览器不支持SSL 128时访问SSL 128的连接。
8、在身份验证的过程中输入了错误的密码。
9、DNS解析错误,手动更改DNS服务器地址。
10、连接的用户过多,可以过后再试。
11、服务器繁忙,同一IP地址发送请求过多,遭到服务器智能屏蔽。

二、403 forbidden出现的逻辑原理
403 Forbidden是HTTP协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。在HTTP请求的方法不是“HEAD”,并且服务器想让客户端知道为什么没有权限的情况下,服务器应该在返回的信息中描述拒绝的理由。在服务器不想提供任何反馈信息的情况下,服务器可以用404 Not Found代替403 Forbidden。

三、403错误代码的分类介绍
403.1?
403.1错误是由于”执行”访问被禁止而造成的,若试图从目录中执行CGI、ISAPI或其他可执行程序,但该目录不允许执行程序时便会出现此种错误。?
403.2?
403.2错误是由于”读取”访问被禁止而造成的。导致此错误是由于没有可用的默认网页并且没有对目录启用目录浏览,或者要显示的HTML网页所驻留的目录仅标记为”可执行”或”脚本”权限。?
403.3?
403.3错误是由于”写入”访问被禁止而造成的,当试图将文件上载到目录或在目录中修改文件,但该目录不允许”写”访问时就会出现此种错误。?
403.4?
403.4错误是由于要求SSL而造成的,您必须在要查看的网页的地址中使用”https”。?
403.5?
403.5错误是由于要求使用128位加密算法的Web浏览器而造成的,如果您的浏览器不支持128位加密算法就会出现这个错误,您可以连接微软网站进行浏览器升级。?
403.6?
403.6错误是由于IP地址被拒绝而造成的。如果服务器中有不能访问该站点的IP地址列表,并且您使用的IP地址在该列表中时您就会返回这条错误信息。?
403.7?
403.7错误是因为要求客户证书,当需要访问的资源要求浏览器拥有服务器能够识别的安全套接字层(SSL) 客户证书时会返回此种错误。?
403.8?
403.8错误是由于禁止站点访问而造成的,若服务器中有不能访问该站点的DNS名称列表,而您使用的DNS名称在列表中时就会返回此种信息。请注意区别403.6与403.8错误。?
403.9?
403.9错误是由于连接的用户过多而造成的,由于Web服务器很忙,因通讯量过多而无法处理请求时便会返回这条错误。?
403.10?
403.10错误是由于无效配置而导致的错误,当您试图从目录中执行CGI、ISAPI或其他可执行程序,但该目录不允许执行程序时便会返回这条错误。?
403.11?
403.11错误是由于密码更改而导致无权查看页面。?
403.12?
403.12错误是由于映射器拒绝访问而造成的。若要查看的网页要求使用有效的客户证书,而您的客户证书映射没有权限访问该Web站点时就会返回映射器拒绝访问的错误。?
403.13?
403.13错误是由于需要查看的网页要求使用有效的客户证书而使用的客户证书已经被吊销,或者无法确定证书是否已吊销造成的。?
403.14?
403.14错误Web 服务器被配置为不列出此目录的内容,拒绝目录列表。?
403.15?
403.15错误是由于客户访问许可过多而造成的,当服务器超出其客户访问许可限制时会返回此条错误。?
403.16?
403.16错误是由于客户证书不可信或者无效而造成的。?
403.17?
403.17错误是由于客户证书已经到期或者尚未生效而造成的。

四、解决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、关于HawkHost空间出现403 Forbidden错误的解决方法
有的时候在共享服务器上安装了Mod security,当网址包含有“%”号等其它敏感字符时,就会被Mod security阻止,马海祥博客曾经也出现过此情况。?
解决HawkHost 403 Forbidden 错误的方法:?
在.htaccess文件里添加如下代码:?
SecFilterEngine Off?
SecFilterScanPOST Off?
直接放在网站的根目录或者程序运行的目录下。
5、关于WordPress导致的403 Forbidden错误解决方法
对于一些使用WordPress管理程序搭建的博客来说,就需要修改.htaccess文件,在后面添加上如下内容即可,其实就是disable mod_security?
SecFilterEngine Off?
SecFilterScanPOST Off?
另外dedecms的可能还需要再加一条,以让默认访问的是index.html文件的DirectoryIndex index.html。?
修改.htaccess文件,将文件上传之后,再重新打开之前出现403 Forbidden的URL就没有再出现错误,直接可以打开了。?

使用优质的代理ip是能够有效避免遭遇403forbidden的手段,比如太阳HTTP可为您提供海量IP资源。

httperror403:forbidden

在写网页爬虫的时候,有的网站会有反爬取措施,所以有可能出现上面所示bug出现bug的地方可能有两处:1.requests请求时  requests.get(url),返回结果是403。  解决方法:  headers={      ‘User-Ageent‘:‘一些字符‘, ... 查看详情

python爬虫采集遇到403问题怎么办?

最近使用爬虫程序去爬一些电商网站,但是爬取的效果不怎么好,总是返回403,也使用过代理,是代理的问题,还是程序的问题。各位大神请指教?403是网页状态码,表示访问拒绝或者禁止访问。应该是你触发到网站的反爬虫机... 查看详情

Apache 动态虚拟主机 - 403 Forbidden

】Apache动态虚拟主机-403Forbidden【英文标题】:ApacheDynamicVirtualHosts-403Forbidden【发布时间】:2011-10-1608:48:22【问题描述】:我正在尝试在我的MacBook(运行LionOS)上配置Apache服务器来处理动态虚拟主机。我已经设法让它“工作”,... 查看详情

apache403forbidden怎么解决

参考技术A在配置Linux的Apache服务时,经常会遇到http403错误,我今天配置测试时也出现了,最后解决了,总结了一下。http403错误是拒绝访问的意思,有很多原因的。还有,这些问题在win平台的Apache里一样会发生!我按照经验总结... 查看详情

启用 CORS 和解决 403 Forbidden 错误的问题

】启用CORS和解决403Forbidden错误的问题【英文标题】:IssuewithenabingCORSandsolving403Forbiddenerror【发布时间】:2018-01-0507:12:13【问题描述】:我尝试解决在向我的GeoServer发送请求时遇到的错误403Forbidden。为了调试这个过程,我使用Chrome... 查看详情

403forbidden啥意思,怎么修复解决403forbidden

403Forbidden是HTTP协议中的一个状态码(StatusCode)。可以简单的理解为没有权限访问此站。访问网时出现403Forbidden错误的原因:1.你的IP被列入黑名单2.你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了3.网... 查看详情

下载过程中出现403forbidden怎么办是怎么回事啊?

...候遇见的这个问题不能下载真是让人着急啊参考技术A403Forbidden是指没有访问权限。看看这个资源是不是要登录才能下载。看看你登录了没有追问登陆了呀还是不能下载啊 参考技术B事情, 查看详情

Django - 403 Forbidden - CSRF 令牌丢失或不正确

】Django-403Forbidden-CSRF令牌丢失或不正确【英文标题】:Django-403Forbidden-CSRFtokenmissingorincorrect【发布时间】:2013-12-0313:10:18【问题描述】:当我按下“注销”按钮时,我已更新到Django1.6并遇到CSRF令牌问题。我的代码:--views.py@login_r... 查看详情

nginx403forbidden怎么解决

参考技术A403Forbidden原因/解决办法1访问禁止目录浏览的目录;这是最常见出现的原因,由于用户的配置权限问题所导致的结果;某个你需要访问的目录给的权限不够。比如网站访问,html目录权限就不够。2解决办法。设置所有父... 查看详情

403forbidden是啥意思,怎么解决这个问题?

403Forbidden是HTTP协议中的一个状态码(StatusCode)。可以简单的理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。在HTTP请求的方法不是“HEAD”,并且服务器想让客户端知道... 查看详情

谁遇到过post请求时发生403forbidden

参考技术A因为django针对提交的请教,有校验。所以会如此。导入模块fromdjango.views.decorators.csrfimportcsrf_exempt在函数前面添加修饰器@csrf_exempt[python]viewplaincopy#客户端提交的post如果不加这段,会出现403error@csrf_exemptdefapi_blogs(request):if... 查看详情

无法访问 laravel 公共目录中的图像和文件 - 403 Forbidden - digitalocean

】无法访问laravel公共目录中的图像和文件-403Forbidden-digitalocean【英文标题】:Cantaccessimagesandfilesinlaravelpublicdirectory-403Forbidden-digitalocean【发布时间】:2021-12-2211:30:15【问题描述】:我在数字海洋LEMP上部署了我的laravel项目。我有... 查看详情

爬虫遇到httperror403的问题(代码片段)

#coding=utf-8frombs4importBeautifulSoupimportrequestsimporturllibx=1y=1defcrawl(url):res=requests.get(url)soup=BeautifulSoup(res.text,'html.parser')globalywithopen(f'C:/Users/Administrator 查看详情

dedecms本地环境打开localhost出现l403forbidden解决怎么

dede本地环境打开出现Forbidden是什么原因,dedecms本地环境打开localhost出现l403Forbidden解决怎么,求高手指教???您好,朋友。很高兴为您解答:首先403错误是目录禁止访问,也就是说你网站根目录的权限不够,最起码要有访问权... 查看详情

打开网页时出现403forbidden是啥意思

访问网时出现403Forbidden错误的原因:1.你的IP被列入黑名单2.你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了3.网站域名解析到了空间,但空间未绑定此域名4.你的网页脚本文件在当前目录下没有执... 查看详情

AzureAD 的 JWT 在 .NET 核心 API 中提供 403 Forbidden

】AzureAD的JWT在.NET核心API中提供403Forbidden【英文标题】:JWTfromAzureADgives403Forbiddenin.NETcoreAPI【发布时间】:2022-01-0607:27:00【问题描述】:我有一个使用JWT身份验证的asp.net核心API。角色用于授权,我不使用范围。Auth0.com和ADFS都可以... 查看详情

apache部署django出现403forbidden错误怎么解决

参考技术A两种解决方式:修改httpd.conf文件,中里面添加声明,开放django所在目录位置的访问权限;将django部署到apache的hotdocs目录中;本回答被提问者和网友采纳 参考技术B因为你的django工程目录没有访问权限,你需要在httpd.conf... 查看详情

怎么解除403forbidden

参考技术A想要解除403forbidden,可以换个时间段访问或者联系网站空间供应商解决。在一定时间内过多地访问此网站,被防火墙拒绝访问了,换个时间段访问即可。网站域名解析到了空间,但空间未绑定此域名,联系网站空间供... 查看详情