爬虫代理
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
爬虫代理搭建与批量安装 manwu912018-03-24金币奖励+10共254263人围观 ,发现 6 个不明物体 WEB安全
代理对于搞爬虫的都不会陌生。公司有一批阿里云服务器用于分布式增量抓取,但对于一些封ip且只需进行一次全量抓取的数据源,或数据量级较小时,如果部署到爬虫集群上又太费事不值得。在网上找的免费代理可用性又太低,于是决定充分利用爬虫服务器的网络资源,在上面搭建自己的代理服务。
squid搭建与配置过程
文中使用的服务器是centos系统。
安装squid
使用yum直接安装即可yum install squid -y,安装完成后配置文件在/etc/squid/目录下。
配置basic认证
不得不说现在网络上扫描器实在太多了。笔者在一台机器上使用默认端口3128开启了squid服务,没有配置访问认证,测试结束后忘记关闭squid服务,过了几个小时就发现服务器负载太高,查看日志(/var/log/squid/)发现是已经被人扫到并用上了。
abused_log.png
看来必需要配置访问认证了
1.生成passwords文件 在本机上执行
# 安装htpasswd工具 yum install httpd-tools -y # 生成passwords文件 htpasswd -c passwords authorized_user
2.输入两次密码后生成passwords文件
配置squid认证 将passwords文件上传到爬虫服务器/etc/squid/目录下,编辑/etc/squid/squid.conf文件,添加
# test mypass
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
高匿配置
squid默认配置为透明代理,通过squid发送请求时squid会添加x-forwarded-for与via请求头,对方会发现你在使用代理,并根据这个得知你的真实ip,对于爬取数据必需要使用高匿代理,在配置文件中添加如下内容
# High Anonymity Configuration
via off
forwarded_for delete
request_header_access From deny all
批量安装
上面已经介绍了搭建与配置squid的步骤,下面介绍如何通过python批量安装。首先需要通过ssh连接到服务器,使用paramiko库可以通过ssh连接到远程服务器,建立连接后执行上面的命令就可以了,没什么可说的就直接贴代码了
ssh = SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 1. 建立ssh连接
ssh.connect(**server)
logger.debug(">>> 1. 建立ssh连接")
# 2. 安装squid
stdin, stdout, stderr = ssh.exec_command('yum install squid -y')
if stdout.channel.recv_exit_status() == 0:
logger.debug(">>> 2. 安装squid完成")
with ssh.open_sftp() as sess:
# 3. 添加认证账号
sess.put(AUTH_FILE, '/etc/squid/passwords')
logger.debug(">>> 3. 上传auth文件完成")
# 4. 更新squid.conf配置文件
sess.put(SQUID_CONF, '/etc/squid/squid.conf')
logger.debug(">>> 4. 上传squid.conf完成")
# 5. systemctl start squid启动服务
stdout = ssh.exec_command('systemctl start squid')[1]
if stdout.channel.recv_exit_status() == 0:
logger.debug('>>> 5. squid服务已启动')
else:
logger.error("squid服务启动失败: " + ''.join(stdout.readlines()))
else:
logger.error("安装squid失败, ip: %s" % server['hostname'])
except Exception as err:
logger.error('处理%s失败', server['hostname'])
ssh.close()
完整代码与squid.conf文件已上传到github,有需要的可以看看。
*本文作者:manwu91,转载请注明来自FreeBuf.COM
manwu91
5 篇文章
等级: 4级
||
上一篇:谷歌为G-Suite服务部署全新反钓鱼和恶意软件检测功能下一篇:CTF实战|USV-2017全题解
发表评论已有 6 条评论
Arvin333 (1级) 2018-03-24回复 1楼
大佬,意思是一台能搭建很多代理,用不了就换?
还是只要是代理,就不会封
因为小爬虫所有目前没遇到要代理的情况
亮了(0)
沈昌珉MAX (1级) 2018-03-24回复 2楼
MARK
亮了(0)
比尔.绿帽 2018-03-25回复 3楼
标题:squid的下载和安装
亮了(5)
anghao (2级) 2018-03-25回复 4楼
标题把搭建去了吧,弄海外匿名好点
亮了(0)
weber213 (4级) 2018-03-26回复 5楼
mark
亮了(0)
corpse (1级) 2018-03-26回复 6楼
自动批量安装squid代理。
亮了(0)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
manwu91
这家伙太懒,还未填写个人描述!
5
文章数
37
评论数
最近文章
利用虚拟机绕过安卓原生加密方案
2018.04.16
那些年绕过的反爬手段
2018.03.30
爬虫代理搭建与批量安装
2018.03.24
浏览更多
相关阅读
代理上网行为检测逃脱之Proxifier快速上手如何通过Python实现自动填写调查问卷DHT爬虫:18.4GB种子分析小记浅谈Python网络爬虫如何使用Photon高效率提取网站数据
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论