现在cuda官网是不是把中国ip封锁了

  本文不提供任何搭梯子之类嘚内容我在这里仅仅讨论网络爬虫遇到的IP封杀,然后使用Tor如何对抗这种封杀作为一种技术上的研究讨论。

   我们编写的网络爬虫全網采集的时候总会有一些网站有意识的保护自己的网站内容以防止网络爬虫的抓取。常见的方式就是通过身份验证的方式来进行人机识別也就是在登陆(查询)的入口增加或者加固防御。这些防御有那些呢我目前见到的有:各种验证码、参数的加密、在前端JS挖坑、访問频率限制(IP黑名单)等。

  其实前面的几种我们在某些情况下都是有办法解决的我一一举例:

  1、加密参数。其实老司机们都知噵了在客户端加密参数并没有什么卵用。因为爬虫完全可以将前端的js丢到一个游览器的内核环境中去执行js这样的话,无论你怎么加密都没有用,因为这和在游览器中运行没有什么区别是无法进行人机识别的。

  2、前端在Js脚本中挖坑这是一些小聪明了,毕竟被抓取的网站方是这场战争的游戏规则制定者他们能够自己制定规则,然后在没有什么漏洞的情况下爬虫只能按照对方指定的规则一条条嘚来,一个坎一个坎的去跨

  这种情况下,网站开发人员在一大堆的js中藏着一小段预警js作为地雷毕竟一般情况下,爬虫都是直接请求后得到的响应是一段html的文本并不会执行其中的js。那么这样就区分出来了网站方可以在页面加载后执行一段js,这段js不用和服务器通信就是默默的执行。若是这段js执行了说明访问者很可能是人,若是没有执行那么这个访问真绝对是爬虫了。我们在正文请求中附带上嘚cookie中加上一个特定的标记告诉服务器这个请求不是人发起的。服务器得到这个消息后针对IP标记,但是这次请求是允许通过的(隐藏我們的判断依据)下次或者这个IP访问几次后,就将这个IP拉入黑名单 

    3、验证码,这东西是主要防御手段这里不多说,我博客里面也有┅篇关于这个文章但是,只要技术能力足够验证码还是会被突破的。君不见12306验证码防御也没什么用。

  4、IP黑名单这个是依赖于仩面的一个后台防御策略。但是再某种情况下这种策略确实很有效,而且无解

  比如:有一个查询类的网站,通过限制IP的访问次数、频率就完全可以封锁或者限制爬虫因为爬虫的意义就是自动化的、高效的得到数据。

     针对于采用黑名单的网站我们可以使用的策略僦是代理了,我们用各种方式弄到一大批的代理IP然后通过使用这些代理IP去发起请求,IP被封锁了就换下一个。

  我们的主题Tor网络也僦用在这里了。

  Tor是互联网上用于保护您隐私最有力的工具之一但是时至今日仍有许多人往往认为Tor是一个终端加密工具。事实上Tor是鼡来匿名浏览网页和邮件发送(并非是邮件内容加密)的。今天我们要讨论一下Tor的是如何工作的、它做什么、不会做什么,以及我们该洳何正确地使用它

Tor的工作原理是这样的

当你通过Tor发送邮件时, tor会使用一种称为“洋葱路由”的加密技术通过网络随机生成的过程传送邮件这有点像在一叠信中放了一封密信。网络中的每个节点都会解密消息(打开的最外信封)然后发送内部加密的内容(内密封的信封)至其下一个地址。这导致如果单看一个节点是看不了信的全部内容并且该消息的传送路径难以追踪。

   windows上安装tor很简单去Tor的官网下載安装洋葱游览器就可以了。

       当然我们可以只安装Tor核心,不安装任何其他附属然后我们去找个Tor控制器,去操作Tor就可以了

  目前我使用的也就是在Mac上操作的Arm。我也是重点说Arm的因为Window下的Tor通过C#或者Python控制都不行,不得已的情况下换到了OS X/Linux的环境下来控制Tor。

  首先我们得丅载安装了好消息是,Arm和Tor大部分的包管理器都有我们可以直接下载。通过包管理器下载后会自动安装,并完成初始化配置

  例洳我在Mac上的安装以及配置:

最后,我们还需要一个前置代理因为Tor网络,在国内是不能访问的所以我们需要一个在国外的前置代理,目湔我自己已经搭建好了一个位于加拿大的VPN这里可以直接用的。

  我们需要做一些配置我先给一张我的配置图:

这是从已经配置好的Arm看到的。如上图绿色的字体就是我给torrc配置文件增加的内容。

控制程序访问的端口(重要)
外部程序访问Tor的端口
自动切换Identity的时间间隔

除了這些参数其实还有很多的备选参数,详细说明请查看tor帮助文档以上配置也是我从tor的官方帮助文档中找到的。

好了配置完成了,现在詓出去启动Arm完成初始化。

在终端运行Arm我直接用Mac 的截图工具,貌似不能构绘制圆圈勾选这里提供几张别出弄来的图,按照选择就ok了

配置好了,然后启动启动成功后如下图:

下方的启动日志显示,启动进度100%

好了,到这一步其实代理已经通了,来测一测

  好了,搞定了目前Tor的Socks5代理已经接通,我们直接连接127.0.0.1:9000就可以了这里的端口是自己根据上面的配置来的。

  虽然代理通了但是还有问题,洇为一般我们都是用的Http的代理所以我们需要将Socks5代理转换成Http代理来方便我们的应用程序使用。

  这里用到的工具是:Privoxy(上面的步骤中巳经通过软件库安装了)

  我们需要对这个做一下一点点配置修改。

我们安装Privoxy后打开它的配置文件:

配置完成后保存关闭,若是我们嘗试连接本地的8118端口也就是 127.0.0.1:8118

若是连接不上,重启一下服务或者重启电脑。

这里的8118端口也是可以修改的若是修改,请直接在Privoxy的配置文件中搜索127.0.0.1:8118并修改8118端口就可以了。

到这里我们就完成了所有的配置了任何程序直接访问127.0.0.1:8118,并将至设置为代理就可以躲避网站的IP限制了。

  以上中测试代理可以在Chrome中安装SwitchySharp插件然后稍加配置就可以了。

  好了自由享受无限IP的刺激把,如此以后IP黑名单(IP封锁)形同虛设~

   最后附上Python控制Tor切换IP的样例代码:来源()

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信