前言:最近在公司做爬蟲相關的工作,做過數據抓取的都知道,寫程序抓取數據的過程並不像平常我們用瀏覽器打開網頁那么簡單!大多數的網站為了自己站點的性能和數據安全都設置了各種反爬策略。最常見的就是添加驗證碼,需要用戶登陸,單個IP有次數和頻率限制等等!所以廣大的爬蟲工程師在抓取數據之前都要先調研一下這個網站的反爬策略!當我們不能正常訪問網站時,我們可以在程序中設置代理IP來判斷網站是不是封禁了我們的IP。在做判斷之前我們先要有一個可用的代理IP地址!
環境:阿里雲CES centos6.5、tinyproxy或者squid代理軟件,本地客戶機
tinyproxy和squid都是比較優秀的代理軟件,tinyproxy比較小眾,雖然沒有squid的功能豐富,但是小巧簡單,也能滿足我們普通yonghu的需求。squid是一款優秀的代理軟件,有很豐富的ACL管理功能,雖然squid很強大,但是並不一定適合我們,下面是tinyproxy和squid的安裝和使用教程!
使用tinyproxy:
安裝
yum install tinyproxy
配置
vim /etc/tinyproxy/tinyproxy.conf
修改Port 端口號為你想設定的值
將Allow 選項后面的IP改成你想使用這個代理的客戶機的IP,如果你想任何人都可以訪問,把這行前面加個#注釋一下就行了
使用
service tinyproxy stop
service tinyproxy start
service tinyproxy restart
來停止、啟動、重啟tinystart
將tinyproxy設置開機啟動
chkconfig --level 2345 tinyproxy on
設置防火牆
iptables -I INPUT -p tcp --dport 設置的代理端口 -j ACCEPT && service iptables save &&service iptables restart
使用squid:
1、安裝
yum update
yum install squid
yum install httpd
chkconfig --level 2345 squid on
chkconfig --level 2345 httpd on
2、配置
2.1找到生成密碼的htpasswd目錄
find / -name htpasswd
2.2進入找到的htpasswd目錄執行
./htpdpwad -c /etc/squid/password username
username換成你想設置的用戶名
會車執行后會讓你輸入密碼,確認密碼!
2.3找到squid的用戶驗證程序
find / -name ncsa_auth
2.4修改squid的配置只讓認證的用戶訪問
vim /etc/squid/squid.conf
添加下面內容
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/password
將上面命令中的/usr/lib/squid/ncsa_auth換成你在機器上找到的步驟2.3的目錄,將/etc/squid/password密碼文件換成步驟2.1生密碼文件路徑
繼續添加下面內容:
認證程序進程數
auth_param basic children 3
認證有效時間
auth_param basic credentialsttl 2 hours
設置允許認證的用戶訪問
acl auth_user proxy_auth REQUIRED
http_access allow auth_user
設置允許全部用戶訪問
http_access allow all
設置端口號
http_port 端口號
2.5啟動squid
service squidstop
service squidstart
service squidrestart