我试图在linux机器上使用本地代理(Tor)来使用火狐。
在按照这个图图安装Tor时,我没有问题,命令行wget -qO - https://api.ipify.org; echo确实为我提供了一个新的IP。
现在,我愿意在通过端口9050的Tor本地主机上使用火狐和RSelenium:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:9050 *:*
LISTEN 0 128 127.0.0.1:9051 *:*我使用了一个独立的selenium java (Selenie-server-Standone-2.53.0.jar),它可以很好地工作在常规的RSelenium上:下面是一个在伊比克上显示ip的示例
library(RSelenium)
remDr <- remoteDriver(
remoteServerAddr = "localhost",
port = 4444L,
browserName = "firefox"
)
remDr$open()
remDr$navigate("https://ipchicken.com/")
ip <- remDr$findElements(using = "css", value ='b')
print(ip[[1]]$getElementText())我也得到了我的IP。现在我想看到它发生在托尔身上。因此,在将远程驱动程序与firefox连接时,我尝试添加代理选项:
eCaps <- list("moz:firefoxOptions" = list(
args = c('--proxy-server=localhost:9050'
)))
remDr <- remoteDriver(
remoteServerAddr = "localhost",
port = 4444L,
browserName = "firefox",
extraCapabilities = eCaps
)我尝试了'--proxy-server=localhost:9050'、'--proxy-server=http://localhost:9050'、'--proxy-server=socks5://localhost:9050'、'--proxy-server=127.0.0.1:9050',它没有输出任何错误,并给出了我的初始IP。所以这是行不通的。独立用户表示,它确实使用选项执行:例如
22:59:10.288 INFO - Executing: [new session: Capabilities [{nativeEvents=true, browserName=firefox, javascriptEnabled=true, moz:firefoxOptions={args=--proxy-server= 127.0.0.1:9050}, version=, platform=ANY}]])
22:59:10.297 INFO - Creating a new session for Capabilities [{nativeEvents=true, browserName=firefox, javascriptEnabled=true, moz:firefoxOptions={args=--proxy-server= 127.0.0.1:9050}, version=, platform=ANY}]
22:59:30.323 INFO - Done: [new session: Capabilities [{nativeEvents=true, browserName=firefox, javascriptEnabled=true, moz:firefoxOptions={args=--proxy-server= 127.0.0.1:9050}, version=, platform=ANY}]]我做错什么了?
编辑
在answer 1207289的回答之后,在意识到可以直接在创建firefox配置文件中使用RSelenium之后,我尝试了:
eCaps <- makeFirefoxProfile(list(network.proxy.type = 1,
network.proxy.socks = "127.0.0.1",
network.proxy.socks_port = 9050,
network.proxy.socks_version = 5))
remDr <- remoteDriver(
remoteServerAddr = "localhost",
port = 4444L,
browserName = "firefox",
extraCapabilities = eCaps
)我使用整数表示network.proxy.socks_port、network.proxy.socks_port和network.proxy.type,因为使用了这个问题,但也尝试了字符,但没有成功。我尝试使用和不使用network.proxy.socks_version = 5,但它没有工作(我正在获得我的正常ip)。我试过network.proxy.socks_port = 9150,但没有用。
我也试过
eCaps <- list("moz:firefoxOptions" = list(
args = c('network.proxy.socks=127.0.0.1:9050' ,'network.proxy.type=1' )
)
)但这也不起作用。
发布于 2020-06-02 18:51:19
我可以用下面的webdriver和firefox连接到TOR。只需确保TOR已安装并正在运行。我在mac (catalina)上用过。您可以根据您的操作系统检查端口设置,以防它们不同。
它在c#中,但是您几乎可以在任何绑定中这样做。
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.SetPreference("network.proxy.type", 1);
firefoxOptions.SetPreference("network.proxy.socks", "127.0.0.1");
firefoxOptions.SetPreference("network.proxy.socks_port", 9150);
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
IWebDriver driver = new FirefoxDriver(service, firefoxOptions);当打开firefox浏览器实例时,只需访问同一个实例上的https://check.torproject.org/,以检查它是否连接到TOR。这将确认您已连接,并将显示您的新ip
发布于 2020-06-08 07:28:26
经过大量搜索,我找到了一种方法:RSelenium有允许获取火狐配置文件的getFirefoxProfile函数。
因此,我首先从火狐中直接配置了相同的图图后的配置文件,并将其复制到我的R文件夹中。使用
fprof <- getFirefoxProfile("myprofile.default")
remDr <- remoteDriver(
remoteServerAddr = "localhost",
port = 4444L,
browserName = "firefox",
extraCapabilities = fprof
)确实起作用了。
https://stackoverflow.com/questions/62074583
复制相似问题