1. 程式人生 > >爬蟲之遇到403 Forbidden,你該怎麽辦?

爬蟲之遇到403 Forbidden,你該怎麽辦?

dde 進行 安裝 ssl 不支持 acc 簡單的 描述 情況下

大數據時代下,數據采集推動著數據分析,數據分析推動發展。但是在這個過程中會出現很多問題。拿最簡單最基礎的爬蟲采集數據為例,過程中就會面臨,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資源。

爬蟲之遇到403 Forbidden,你該怎麽辦?