2017-08-05 46 views
2

我目前遇到一個奇怪的問題與網絡抓取,由於某種原因,相同的代碼工程從我的電腦(狀態碼:200),但不是從Ubuntu 16.04服務器(狀態碼: 403)運行完全相同的Python版本。在Linux上的Python請求403,但從Windows作品

import requests 
session = requests.Session() 
response = session.get('https://zooqle.com/', headers={'User-Agent': 'Mozilla/5.0'}) 
print(response.status_code) 

任何想法爲什麼會發生這種情況?

+0

嘗試對用戶代理頭設置爲一些典型的瀏覽器。 –

+0

通過網絡抓取,您很可能會被禁止使用過多的帶寬。 – o11c

回答

0

答案可能是防火牆出站規則,它阻止了你,我已經用Python 2.7.13在我的Ubuntu 16.04上測試了你的代碼,並且收到了200的狀態。

檢查入站和出站規則,有:

sudo iptables -L -n 

我的iptable看起來是這樣的:

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination   
ACCEPT  udp -- 0.0.0.0/0   0.0.0.0/0   udp dpt:53 
ACCEPT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp dpt:53 
ACCEPT  udp -- 0.0.0.0/0   0.0.0.0/0   udp dpt:67 
ACCEPT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp dpt:67 

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination   
DOCKER-USER all -- 0.0.0.0/0   0.0.0.0/0   
DOCKER-ISOLATION all -- 0.0.0.0/0   0.0.0.0/0   
ACCEPT  all -- 0.0.0.0/0   0.0.0.0/0   ctstate RELATED,ESTABLISHED 
DOCKER  all -- 0.0.0.0/0   0.0.0.0/0   
ACCEPT  all -- 0.0.0.0/0   0.0.0.0/0   
ACCEPT  all -- 0.0.0.0/0   0.0.0.0/0   
ACCEPT  all -- 0.0.0.0/0   192.168.122.0/24  ctstate RELATED,ESTABLISHED 
ACCEPT  all -- 192.168.122.0/24  0.0.0.0/0   
ACCEPT  all -- 0.0.0.0/0   0.0.0.0/0   
REJECT  all -- 0.0.0.0/0   0.0.0.0/0   reject-with icmp-port-unreachable 
REJECT  all -- 0.0.0.0/0   0.0.0.0/0   reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination   
ACCEPT  udp -- 0.0.0.0/0   0.0.0.0/0   udp dpt:68 

Chain DOCKER (1 references) 
target  prot opt source    destination   

Chain DOCKER-ISOLATION (1 references) 
target  prot opt source    destination   
RETURN  all -- 0.0.0.0/0   0.0.0.0/0   

Chain DOCKER-USER (1 references) 
target  prot opt source    destination   
RETURN  all -- 0.0.0.0/0   0.0.0.0/0  

我剛剛張貼在這裏爲你和你的比較和糾正你的Linux防火牆,關注ACCEPT/REJECT請求。

+0

一切看起來不錯,我唯一的猜測是它被VPS提供商阻止。 – user3645737

+0

這也是可能的。 – k3rn3llp4n1c

+0

我嘗試了使用硒web驅動程序的相同的事情,導致下面的頁面要求通過任何瀏覽器從Windows訪問時未顯示的驗證碼。 http://prntscr.com/g5gr1a 我會盡量啓用Cookie和報告相應 – user3645737

0

結論:網站被ISP阻止。

解決方案:使用一個Web代理和Web刮它來獲取所需的數據

相關問題