1

我正在尝试构建一个网站来抓取托管在 .onion 域上的各种页面。这意味着它不像调用 .onion 那样简单requests.get("http://XXX.onion"),因为 .onion 只能通过 TOR 连接获得。

我可以使用像 onion.to 这样的重定向器,但这需要点击,这在我爬行时不起作用。

我不在乎匿名,我只想要数据。

4

2 回答 2

1

Requests 支持 HTTP 代理,但不支持 SOCKS 代理,这是 Tor 为您提供的。

你可以得到一个补丁版本的请求:How to make python Requests work via socks proxy

或者安装 Polipo 并将其用作另一个代理,将 Tor 的 SOCKS5 代理“转换”为 HTTP/HTTPS 代理。这是我的配置文件:

proxyName = "localhost"
proxyAddress = "127.0.0.1"
proxyPort = 8118

allowedClients = 127.0.0.1
allowedPorts = 1-65535

cacheIsShared = false
chunkHighMark = 67108864

socksParentProxy = "localhost:9050"
socksProxyType = socks5


diskCacheRoot = ""
localDocumentRoot = ""

disableLocalInterface = true
disableConfiguration = true
disableVia = true

dnsUseGethostbyname = yes

maxConnectionAge = 5m
maxConnectionRequests = 120

serverMaxSlots = 8
serverSlots = 2

tunnelAllowedPorts = 1-65535

现在,您可以将代理与请求一起使用:

proxies = {
    'http': 'localhost:8118',
    'https': 'localhost:8118'
}

requests.get('http://something.onion/', proxies=proxies)
于 2013-08-05T04:15:03.247 回答
0

你为什么不设置 Tor 并使用一堆 wget 和 torsocks?

例如

# torsocks wget -c -mirror http://kpvz7ki2v5agwt35.onion
于 2013-08-28T01:39:28.117 回答