使用 TOR 抓取(Windows)
Posted
技术标签:
【中文标题】使用 TOR 抓取(Windows)【英文标题】:Scrapy with TOR (Windows) 【发布时间】:2015-08-17 15:47:49 【问题描述】:我创建了一个 Scrapy 项目,其中包含几个蜘蛛来抓取一些网站。现在我想使用 TOR 来:
-
对爬取的服务器隐藏我的 ip;
将我的请求关联到不同的 ip,模拟来自不同用户的访问。
我已经阅读了一些关于此的信息,例如: using tor with scrapy framework, How to connect to https site with Scrapy via Polipo over TOR?
这些链接的答案对我没有帮助。为了使 Scrapy 与 TOR 一起正常工作,我应该采取哪些步骤?
编辑 1:
考虑到答案 1,我从安装 TOR 开始。当我使用 Windows 时,我下载了 TOR Expert Bundle (https://www.torproject.org/dist/torbrowser/5.0.1/tor-win32-0.2.6.10.zip) 并阅读了有关如何将 TOR 配置为中继的章节 (https://www.torproject.org/docs/tor-doc-windows.html.en)。不幸的是,关于如何在 Windows 上执行此操作的信息很少或有任何信息。如果我解压缩下载的存档并运行文件 Tor\Tor.exe 没有任何反应。但是,我可以在任务管理器中看到实例化了一个新进程。我不知道从这里开始的最佳方式是什么。
【问题讨论】:
你已经取得了什么成就?你有什么问题?请编辑您的问题并向我们解释这些问题,以便我们能够提供帮助。 github上的这个scrapy项目解释了如何废弃匿名:github.com/WiliTest/… 【参考方案1】:经过大量研究,我找到了一种方法来设置我的 Scrapy 项目以在 Windows 操作系统上使用 TOR:
-
下载适用于 Windows 的 TOR Expert Bundle (1) 并将文件解压缩到一个文件夹(例如 \tor-win32-0.2.6.10)。
适用于 Windows 的最新 TOR 版本不附带图形用户界面 (2)。可能只能通过配置文件和 cmd 命令设置 TOR,但对我来说,最好的选择是使用 Vidalia。下载它 (3) 并将文件解压缩到一个文件夹(例如 vidalia-standalone-0.2.21-win32)。运行“启动 Vidalia.exe”并转到“设置”。在“常规”选项卡上,将 Vidalia 指向 TOR (\tor-win32-0.2.6.10\Tor\tor.exe)。
检查 torrc 文件的“高级”选项卡和“Tor 配置文件”部分。我已经配置了下一个端口:
控制端口 9151 袜口 9050
单击 Vidalia 控制面板 UI 上的启动 Tor。经过一些处理后,您应该在状态上看到消息“已连接到 Tor 网络!”。
下载 Polipo 代理 (4) 并将文件解压缩到一个文件夹(例如 polipo-1.1.0-win32)。在链接 5 上阅读有关此代理的信息。
编辑文件 config.sample 并在其中添加下一行(例如,在文件的开头):
socksParentProxy = "localhost:9050" socksProxyType = socks5 diskCacheRoot = ""
通过 cmd 启动 Polipo。转到解压缩文件的文件夹,然后输入下一个命令“polipo.exe -c config.sample”。
现在您已经启动并运行了 Polipo 和 TOR。 Polipo 将使用 SOCKS 协议通过端口 9050 将任何请求重定向到 TOR。 Polipo 将接收任何 HTTP 请求以重定向到 8123 端口。
现在您可以按照教程“Torifying Scrapy Project On Ubuntu”(6) 的其余部分进行操作。继续本教程解释如何测试 TOR/Polipo 通信的步骤。
链接:
-
https://www.torproject.org/download/download.html.en
https://tor.stackexchange.com/questions/6496/tor-expert-bundle-on-windows-no-installation-instructions
https://people.torproject.org/~erinn/vidalia-standalone-bundles/
http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/
http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/tor.html
http://blog.privatenode.in/torifying-scrapy-project-on-ubuntu
【讨论】:
如何使 polipo 与 https 一起工作?有人可以帮忙吗?我得到无法打开 CONNECT 隧道。 From Review:已编辑链接 6:使用 Web 存档版本【参考方案2】:详细的分步说明在这里 http://blog.privatenode.in/torifying-scrapy-project-on-ubuntu/
基本步骤有:
-
安装 Tor 和 Polipo(对于 linux,这可能需要添加存储库)。
配置 Polipo 以使用 SOCK 连接与 TOR 对话(请参阅上面的链接)。
创建自定义中间件以将 tor 用作 http 代理并随机更改 scrapy 用户代理
要抑制上述示例中的折旧警告,请编写
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
而不是'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,
你的情景是什么?您是否考虑过租用代理服务器?
【讨论】:
感谢 fmp 一步一步的介绍。考虑到您的回答,我编辑了我的问题(EDIT 1 标签)。关于您的最后一个问题“您是否考虑过租用代理服务器?”如果我使用 TOR 重定向我的抓取流量,为什么我需要租一些代理服务器? 对不起,我没有在windows下运行tor。您不必租用代理,您的初始问题可以选择隐藏您的“真实”IP(在代理服务器后面)并将您的请求关联到不同的 ip(例如来自代理服务器的请求)。以上是关于使用 TOR 抓取(Windows)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Scrapy Tor Privoxy和UserAgent匿名废弃? (Windows 10)