阿华code
配置vps服务器,拨号换ip(一)
1).高匿名代理IP:
http://h.zhimaruanjian.com/getapi/
特点:
一次能提取数十/百个IP
优势:
使用最方便,调用商家API接口,即可提取代理IP使用
劣势:
质量最不好,扫描IP/鱼目混珠,海量抓取时成本高
费用:20/s换一次IP 4320IP/天 0.04/ip/元 172元/天=5000元/月 使用方法:
q = Queue.Queue()
def get_proxy():
if q.empty():
res = resquests.get(‘xxx’).json()
for i in res[‘proxy’]:
q.put(i)
else:
return q.get()
def crawl():
proxy = get_proxy()
r = res = resquests.get(‘xxx’,proies = proxy)
2).借助VPS主机进行adsl拨号换IP:
特点:
使用adsl拨号一次,每播一次就切换一次IP
优势:
成本低,质量比高匿好,也可配置成代理IP
劣势:
使用配置相对麻烦,性能受VPS主机影响较多(短时间高频拨号会失败,vps主机长时间运行无响应,拨号 等待时间长)
费用:
固定费用80-150/月/台 IP无限制切换
http://www.sunnet365.com/
http://www.5jwl.com/pppoevps/
购买vps主机,vps主机上可以使用adsl拨号
http://www.5jwl.com/style/info/shownews.asp?id=1383
(每个商家的拨号方法不一致 先在商家网站上找或询问商家)
linux上一般的设置方法:
通过pppoe-setup命令配置配置adsl账号密码
使用pppoe-start 拨号切换IP 使用pppoe-stop
关闭拨号 使用方法:
方法1.把抓取程序放在vps主机上运行 需要在vps主机上配置你的爬虫运行环境
特点:vps主机的配置差,不稳定,抓取程序和数据可能会丢失 适合不是很超长时间运行的爬虫。总抓取量在千万级以内
class Crawler:
def init(self):
self._crawl_count = 0
def _do_request(self,url):
try:
r = requests.get(url)
return r.text
except Exception as e:
return ‘’
def _readsl(self):
os.popen(‘rasdial 网络名称 /disconnect’)
time.sleep(6)
os.popen(‘rasdial 网络名称 adsl账号 adsl密码’)
code = os.system(‘ifdown 网络链接名称’)
time.sleep(6)
code = os.system(‘ifup 网络链接名称’)
def start(self):
while True:
text = self._do_request(url)
self._crawl_count++
if self._crawl_count > 100:
self._readsl()
self._crawl_count = 0
适合范围:
适合在vps主机上运行爬虫程序 适合单台vps主机
要使用多台vps主机的IP怎么办?
方法2.把vps主机配置成http代理服务器(注:一些商家不再支持自建http代理)
自建http代理的方法:
在vps主机上安装tinyproxy或squid软件作为http代理服务
vps主机的linux一般都是centos
yum install gcc make -y
yum install zlib-devel -y
wget http://python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
tar xf Python-3.6.1.tar.xz
cd Python-3.6.1
./configure --prefix=/usr/local/python3
make
make install
ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python3
centos系统使用 yum 命令来安装软件
先安装wget yum install wget -y
2.1 备份现在的源 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.2 下载阿里云安装源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.3 清空本地yum缓存 yum clean all
安装epel-release(安装了epel-release才能安装tinyproxy)
yum install epel-release -y
yum install tinyproxy -y
安装openssl(支持https) yum -y install openssl
service tinyproxy start
yum install vim -y
用vim打开tinyproxy配置文件编辑
vim /etc/tinyproxy/tinyproxy.conf
可以修改端口 运行指定IP访问代理
tinyproxy service tinyproxy restart
systemctl status tinyproxy
curl -x ip:port www.baidu.com
5.1关闭防火墙 systemctl stop firewalld systemctl disable firewalld 5.2 询问商家是否支持在服务器上建http代理
tips:要让tinyproxy每天稳定运行,每天都重启1-2次tinyproxy