我正在尝试构建一个网站,以对.onion域上托管的各种页面进行爬网。这意味着它不像仅调用requests.get("http://XXX.onion")
那样简单,因为.onion仅通过TOR连接才可用。
我可以使用像onion.to这样的重定向器,但这需要单击,在我爬网时不起作用。
我不在乎匿名,我只想要数据。
最佳答案
请求支持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)
关于python - 爬网具有.onion域的网站的最简单方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18050416/