Tor端口9051不听

时间:2016-11-05 10:52:41

标签: scrapy port tor

我是全新的...不知道两周前网页拼接是什么意思。经过一些研究,我使用beautifulsoup和selenium实现了python3代码。效果很好。现在,考虑到我需要抓取的数据量,我已经明白scrapy1可能是正确的工具,特别是如果我旋转IP地址。我发现了理论上应该有用的一些代码。但是,当调用RetryChangeProxyMiddleware时,我收到以下消息:

[WinError 10061]无法建立连接,因为目标计算机主动拒绝它

因此,我使用了这个:

from stem.control import Controller

将Controller.from_port(port = 9051)作为控制器:

controller.authenticate('canal007')  # provide the password here if you set one

bytes_read = controller.get_info("traffic/read")
bytes_written = controller.get_info("traffic/written")

print("My Tor relay has read %s bytes and written %s." % (bytes_read, bytes_written))

返回相同的消息。所以我想我有一个'端口听力问题'在我身边。我应该在我的Windows机器上拥有管理员权限。我相信我没有使用任何代理(我在这里谨慎,因为我不是专家,......)。我试图打开和关闭Windows防火墙,但它没有改变任何东西。

Tor已安装,当我运行它时,它可以工作。保存一些网站,但我试图用scrapy刮掉的那个网站可以使用Tor。

这是我的torrc.orig.1文件: ControlPort 9051 AUTHENTICATE“mypasswd”

我已经使用tor.exe生成了一个hashkey并在以下使用scrapy调用的中间件中使用它:

def process_request(self, request, spider):
        if random.choice(range(1,100)) <= 80:
            logging.log(logging.INFO, 'Changing proxy')
            tn = telnetlib.Telnet('127.0.0.1', 9051)
            tn.read_until("Escape character is '^]'.", 2)
            tn.write('AUTHENTICATE "<hashkey>"\r\n')
            tn.read_until("250 OK", 2)
            tn.write("signal NEWNYM\r\n")
            tn.read_until("250 OK", 2)
            tn.write("quit\r\n")
            tn.close()
            logging.log(logging.INFO, '>>>> Proxy changed. Sleep Time')
            time.sleep(10)

如果我丢弃这个中间件,那我就可以刮掉了。但我没有旋转的IP地址,...所以我迟早会被我想要刮掉的服务器拒绝。

如果有人能以一种非常有说服力的方式提供帮助,那就太棒了。

感谢社区!!

0 个答案:

没有答案
相关问题