基于 Tor 匿名网络的多 IP 爬虫

基于tor匿名网络的多ip爬虫。更换ip的方式有多种,其中tor这类型则适合ip更换次数不大,网页数据量也不大,但是又厌恶代理那天天失效的麻烦,则最简单快捷的便是使用tor在本机搭建一个出口端口,让需要更换ip的爬虫程序制定proxies指向的端口,简单而且快捷,可使用的ip池子总数1000左右,实际中有500左右可以使用,匿名性当然不用质疑了。

一.测试环境:

  • linux ubuntu 16.04
  • python 2.7
  • 主要包:requests   –    requesocks
  • 需要linux主机本身可以访问外网.自配vpn或者是香港主机也可以是window的电脑装linux的虚拟机,然后window使用vpn或者加速器等.

二.部署方式:

.. 2.1 环境准备
….. 2.1.1 Linux
….. 2.1.2 Python
….. 2.1.3 Tor

══════════

2.1 环境准备
──────

Linux 操作系统。Windows 部署没有验证。
2.1.1 Linux
╌╌╌╌╌╌╌╌╌╌╌

Linux 各种发行版本均可。以 Ubuntu 为例

2.1.2 Python

┌────
│ sudo apt-get install python-pip
└────
┌────
│ sudo pip install requests
│ sudo pip install requesocks
└────

╌╌╌╌╌╌╌╌╌
2.1.3 Tor
┌────
│ sudo apt-get install tor
│ sudo /etc/init.d/tor restart
└────
启动后socks监听9050端口。
┌────
│ tor –hash-password mypassword
└────
生成你的密码,之后编辑/etc/tor/torrc加上

ControlPort 9051

HashedControlPassword
16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C

让ControlPort监听9051端口,后边那个16:开头的hash就是上一步得到的。

┌────
│ /etc/init.d/tor restart
└────
重启下tor。

三. python示例代码

方法一:

使用  requesocks

结果如图:

2016-12-06-11-45-49%e5%b1%8f%e5%b9%95%e6%88%aa%e5%9b%be

方法二

pip install PySocks

此可以使用requests的方式发送请求

结果是类似的.

要在程序内实现tor更换出口ip则调用下条指令即可

四.总结

最终,在已知的7种爬虫更换ip的方式中,tor算是部署成本最小的,只要你本机能够翻qiang即可拥有500个ip供使用,并且能够保证相当高的匿名性.但是问题也是存在的,如果目标网站网页内容多,或者在抓取的时候使用phantomjs等方式就也一样是网速要求比较高这个时候就需要另外的方式了,比如adsl….ADSL爬虫届的换ip大招

额外的爬虫进阶技术文:

浏览器模拟操作:http://python.jobbole.com/86784/

爬虫分布式技术:传送门redis

相关代码均在github开源项目中.欢迎star和fork.也希望多多指教.

Anti-Anti-Spider

打赏支持我写出更多好文章,谢谢!

打赏作者

打赏支持我写出更多好文章,谢谢!

2 8 收藏 1 评论

关于作者:路易十四

少年程序猿,从事数据采集挖掘方面:个人博客,www.urlteam.org,邮箱:a83533774@gmail.com主要技能树:python,爬虫,linux,web前端,ACM,骑行。 个人主页 · 我的文章 · 9 ·   

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部