有人能告诉我如何让它工作吗?我想通过privoxy同时运行多个tors为我的scrapy项目...每一个应该有一个不同的ip地址。
vh0rcniy1#
首先为我糟糕的英语感到抱歉,因为这不是我的母语(我是俄罗斯人)。我遇到了许多“问题”,而试图建立一个多个示例的tor和privoxy,使每一个可以与不同的ip为我的scrapy工作。我会告诉你它是如何做的。我将在Kali Linux 2.0上工作,我也将作为根用户工作。步骤1.获取tor和privoxy:
apt-get install tor apt-get install privoxy
步骤2.制作或复制...
cp /var/lib/tor -r /var/lib/tor2 cp /var/lib/tor -r /var/lib/tor3 cp /var/lib/tor -r /var/lib/tor4
步骤3.制作torrc副本...
cp /etc/tor/torrc torrc2 cp /etc/tor/torrc torrc3 cp /etc/tor/torrc torrc4
步骤4.现在我们要编辑每个torrc文件,你可以删除里面的所有内容,并输入以下配置:
SocksPort 9050 (9060, 9070, 9080) ControlPort 9051 (9061, 9071, 9081) DataDirectory /var/lib/tor (tor2, tor3, tor4)
第5步.让我们测试一下是否一切正常,让我们打开4个终端并像这样在每个人中启动tor:
Terminal 1: tor -f /etc/tor/torrc Terminal 2: tor -f /etc/tor/torrc2 Terminal 3: tor -f /etc/tor/torrc3 Terminal 4: tor -f /etc/tor/torrc4
现在打开一个新的终端,让我们 curl 这个网站“http://ipinfo.io/ip“,它会给予我们我们的ip。每个tor的命令如下:
curl --proxy socks5h://localhost:9050 http://ipinfo.io/ip curl --proxy socks5h://localhost:9060 http://ipinfo.io/ip curl --proxy socks5h://localhost:9070 http://ipinfo.io/ip curl --proxy socks5h://localhost:9080 http://ipinfo.io/ip
如果一切都做得很好,每一个都应该返回一个不同的ip。现在我们有4个tor示例同时运行。但是tor使用sock 5代理,而对于我们的scrapy项目,我们需要它是http代理。所以我们要插入privoxy。第一步。让我们复制我们的privoxy文件夹3倍一样与托...
cp -a /etc/privoxy /etc/privoxy2 cp -a /etc/privoxy /etc/privoxy3 cp -a /etc/privoxy /etc/privoxy4
步骤2.现在我们要编辑每个privoxy文件夹中的每个配置文件:
mousepad /etc/privoxy(2,3,4)/config
首先,我们必须取消选中“forward-socks 5 t”并更改每个配置文件的端口:
forward-socks5t / 127.0.0.1:9050 . forward-socks5t / 127.0.0.1:9060 . forward-socks5t / 127.0.0.1:9070 . forward-socks5t / 127.0.0.1:9080 .
同时更改收听地址:
listen-address 127.0.0.1:8118 listen-address 127.0.0.1:8128 listen-address 127.0.0.1:8138 listen-address 127.0.0.1:8148
步骤3.我们将制作另一个privoxy文件夹的副本:
cp /etc/init.d/privoxy /etc/init.d/privoxy2 cp /etc/init.d/privoxy /etc/init.d/privoxy3 cp /etc/init.d/privoxy /etc/init.d/privoxy4
步骤4.编辑每个文件夹中的privoxy文件:
mousepad /etc/init.d/privoxy(2,3,4) NAME=privoxy(2,3,4) OWNER=privoxy(2,3,4) LOGDIR=/var/log/privoxy(2,3,4) CONFIGFILE=/etc/privoxy(2,3,4)/config
步骤5.最后,为每个权限创建日志副本:
cp -a /usr/sbin/privoxy /usr/sbin/privoxy2 cp -a /usr/sbin/privoxy /usr/sbin/privoxy3 cp -a /usr/sbin/privoxy /usr/sbin/privoxy4
完成。让我们进行测试,在不同的终端重新启动4个tors,如步骤5所示。现在,我们将在不同的终端启动4个privoxys,如下所示:
start-stop-daemon --start --exec /usr/sbin/privoxy --pidfile /var/run/privoxy.pid -- --user root /etc/privoxy/config start-stop-daemon --start --exec /usr/sbin/privoxy2 --pidfile /var/run/privoxy2.pid -- --user root /etc/privoxy2/config start-stop-daemon --start --exec /usr/sbin/privoxy3 --pidfile /var/run/privoxy3.pid -- --user root /etc/privoxy3/config start-stop-daemon --start --exec /usr/sbin/privoxy4 --pidfile /var/run/privoxy4.pid -- --user root /etc/privoxy4/config
为了测试它是否有效,让我们 curl 同一个网站:
curl --proxy http://127.0.0.1:8118 http://ipinfo.io/ip curl --proxy http://127.0.0.1:8128 http://ipinfo.io/ip curl --proxy http://127.0.0.1:8138 http://ipinfo.io/ip curl --proxy http://127.0.0.1:8148 http://ipinfo.io/ip
如果它给你不同的ips,那么你做的一切都很好。如果你想关闭所有privoxys只需键入:
pkill privoxy(2,3,4)
现在,当你要在Scrappy中创建spider时,你可以为每个spider使用不同的代理,下面是一个例子:
import requests from stem import Signal from stem.control import Controller def get_new_ip(2,3,4)(): with Controller.from_port(port=9051(9061,9071,9081) as controller: controller.authenticate() controller.signal(Signal.NEWNYM) response = requests.get('https://api.myip.com/', proxies={'https': '127.0.0.1:8118(8128,8138,8148)'}) print(response.text) class ProxyMiddleware(2,3,4)(object): _requests_count = 0 def process_request(self, request, spider): self._requests_count += 1 if self._requests_count > 5: self._requests_count = 0 get_new_ip1() request.meta['proxy'] = 'http://127.0.0.1:8118(8128,8138,8148)' spider.log('Proxy : %s' % request.meta['proxy'])
就是这样,我希望这能帮助你!))我曾经挣扎了很多,让所有这些工作在一起,并没有找到任何教程,解释一步一步如何使它工作。祝你好运!)
1条答案
按热度按时间vh0rcniy1#
首先为我糟糕的英语感到抱歉,因为这不是我的母语(我是俄罗斯人)。我遇到了许多“问题”,而试图建立一个多个示例的tor和privoxy,使每一个可以与不同的ip为我的scrapy工作。我会告诉你它是如何做的。
我将在Kali Linux 2.0上工作,我也将作为根用户工作。
步骤1.获取tor和privoxy:
步骤2.制作或复制...
步骤3.制作torrc副本...
步骤4.现在我们要编辑每个torrc文件,你可以删除里面的所有内容,并输入以下配置:
第5步.让我们测试一下是否一切正常,让我们打开4个终端并像这样在每个人中启动tor:
现在打开一个新的终端,让我们 curl 这个网站“http://ipinfo.io/ip“,它会给予我们我们的ip。每个tor的命令如下:
如果一切都做得很好,每一个都应该返回一个不同的ip。现在我们有4个tor示例同时运行。但是tor使用sock 5代理,而对于我们的scrapy项目,我们需要它是http代理。所以我们要插入privoxy。
第一步。让我们复制我们的privoxy文件夹3倍一样与托...
步骤2.现在我们要编辑每个privoxy文件夹中的每个配置文件:
首先,我们必须取消选中“forward-socks 5 t”并更改每个配置文件的端口:
同时更改收听地址:
步骤3.我们将制作另一个privoxy文件夹的副本:
步骤4.编辑每个文件夹中的privoxy文件:
步骤5.最后,为每个权限创建日志副本:
完成。让我们进行测试,在不同的终端重新启动4个tors,如步骤5所示。现在,我们将在不同的终端启动4个privoxys,如下所示:
为了测试它是否有效,让我们 curl 同一个网站:
如果它给你不同的ips,那么你做的一切都很好。如果你想关闭所有privoxys只需键入:
现在,当你要在Scrappy中创建spider时,你可以为每个spider使用不同的代理,下面是一个例子:
就是这样,我希望这能帮助你!))我曾经挣扎了很多,让所有这些工作在一起,并没有找到任何教程,解释一步一步如何使它工作。
祝你好运!)