前言:最近在公司做爬虫相关的工作,做过数据抓取的都知道,写程序抓取数据的过程并不像平常我们用浏览器打开网页那么简单!大多数的网站为了自己站点的性能和数据安全都设置了各种反爬策略。最常见的就是添加验证码,需要用户登陆,单个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