Как установить несколько портов socks в файле torcc, в файле конфигурации polipo и реализовать его также в проекте scrapy? - PullRequest
0 голосов
/ 22 февраля 2019

Цель, которую я ставлю перед собой, состоит в том, чтобы использовать несколько команд одного паука, как я это сделал здесь , и получать разные IP-адреса для каждой запущенной команды.Итак, у меня есть некоторые идеи, которые я привожу ниже.

Насколько я понимаю, я могу записать в один файл torrc несколько портов, как это представлено в ответе adrelanos в этой теме ,Это полезно, если true, потому что я использую Vidalia, чтобы запустить его, и я могу установить только один файл torrc. Заметьте, я не проверял его на данный момент

Но у меня есть несколько запросов.

На этой странице (присутствует в предыдущем topic ) , torrc Файл также нуждается в Socksport и ControlPort.Сначала действительно нужно иметь оба?Во-вторых, в файле polipo config я могу установить несколько различных socksParentProxy в нем, как в torrc (я не нахожу это в руководстве по polipo) ?В-третьих, как реализовать Socksport в scrapy middlewares.py с controller ниже в коде?

В моем проекте scrapy у меня есть намерение установить другой порт управления в соответствии с различными командами паука, такими какэто:

In spider.py

def __init__ (self, arg1=None, arg2=None , controlport=None, proxyport=None, socksport=None) : 
    arg1= self.arg1
    arg2= self.arg2

In middlewares.py

from toripchanger import TorIpChanger
from stem import Signal
from stem.control import Controller

def _set_new_ip(controlport):
    with Controller.from_port(port=controlport) as controller:
        controller.authenticate(password='tor_password')
        controller.signal(Signal.NEWNYM)

class ProxyMiddleware(object):
    def process_request(self, request, spider):
        _set_new_ip(spider.controlport) #not sure it could work but you get the idea
        request.meta['proxy'] = 'http://127.0.0.1:'+str(spider.proxyport)
        spider.log('Proxy : %s' % request.meta['proxy'])

Так как установить в нем socksport?Я посмотрел Controller документацию библиотеки stem, которую я использую в своем файле middlewares.py, и я не вижу, какой метод может помочь мне сделать это.

И последний вопрос, прокси не является обязательным, какой риск, если я не использую прокси и только Tor?

...