2 回答

TA貢獻1803條經驗 獲得超6個贊
解決錯誤:InvalidSchema: Missing dependencies for SOCKS support
我通過在命令行中運行以下命令在 Windows 操作系統中重新啟動 Tor 服務:
tor --service remove
然后
tor --service install -options ControlPort 9051

TA貢獻1794條經驗 獲得超8個贊
您是否正在從 cli 運行 Tor 服務?
您的代理應如下所示:
session.proxies = {'http': 'socks5h://127.0.0.1:9050',
'https': 'socks5h://127.0.0.1:9050'}
此外,請求并非旨在以您描述的方式發出大量請求。我會建議使用以下設置,使用aiohttp,aiohttp_socks和asyncio。
import asyncio, aiohttp
from aiohttp_socks import SocksConnector
async def get_one(url, callback):
connector = SocksConnector.from_url('socks5://localhost:9050', rdns=True)
# rdns=True is important!
# 1) Can't connect to hidden services without it
# 2) You will make DNS lookup requests using your real IP, and not your Tor IP!
async with aiohttp.ClientSession(connector=connector) as session:
print(f'Starting {url}')
async with session.get(url) as res:
return await callback(res)
def get_all(urls, callback):
future = []
for url in urls:
task = asyncio.ensure_future(get_one(url, callback))
future.append(task)
return future
def test_callback(res):
print(res.status)
if __name__ == '__main__':
urls = [
'https://python.org',
'https://google.com',
#...
]
loop = asyncio.get_event_loop()
future = get_all(urls, test_callback)
loop.run_until_complete(asyncio.wait(future))
添加回答
舉報