如何用Python自动打开和关闭Tor浏览器
我在玩网页抓取和Tor 我设法使它同时适用于如何用Python自动打开和关闭Tor浏览器,python,python-3.x,tor,Python,Python 3.x,Tor,我在玩网页抓取和Tor 我设法使它同时适用于请求和Selenium+PhantomJS。但是,我需要打开Tor浏览器,脚本才能工作 这就是为什么我现在试图自动化整个过程;即:自动打开Tor浏览器,运行一些脚本,最后自动关闭浏览器。但我正在与之斗争 #open Tor browser os.system('open /Applications/TorBrowser.app') #code to scrape #close Tor browser ??? 打开 要打开浏览器,我发现其他一些选项
请求
和Selenium
+PhantomJS。但是,我需要打开Tor浏览器,脚本才能工作
这就是为什么我现在试图自动化整个过程;即:自动打开Tor浏览器,运行一些脚本,最后自动关闭浏览器。但我正在与之斗争
#open Tor browser
os.system('open /Applications/TorBrowser.app')
#code to scrape
#close Tor browser
???
打开
要打开浏览器,我发现其他一些选项不起作用
import subprocess
subprocess.Popen('/Applications/TorBrowser.app') #permission denied
或
然而,下面这句话起了作用:
os.system('open /Applications/TorBrowser.app')
接近
主要的问题是在之后关闭浏览器,因为在其他帖子中找到的命令都不起作用
这些措施包括:
os.system("taskkill /im /Applications/TorBrowser.app /f") #sh: taskkill: command not found
或
或
- 有没有关于如何关闭它的建议
- 有没有更好的方法打开它
from selenium import webdriver
import os
import subprocess
#start Tor
sproc=subprocess.Popen('"C:\\Users\\My name\\Desktop\\Tor Browser\\Browser\\firefox.exe"' )
#start PhantomJS
service_args = [ '--proxy=localhost:9150', '--proxy-type=socks5', ]
driver = webdriver.PhantomJS(service_args=service_args)
#get page
driver.get("https://stackoverflow.com/questions/40161921/how-to-open-and-close-tor-browser-automatically-with-python")
print(driver.page_source)
driver.close()
#kill process
sproc.kill()
我认为您应该在命令之间添加一些时间暂停:
import time
time.sleep(20)# wait 20 seconds
打开Tor的另一种方法:
os.system('"C:\\Users\\My Name\\Desktop\\Tor Browser\\Browser\\firefox.exe"' )
但这次您的命令将等待被调用进程自己停止(可能是用户将关闭它)。根据你的问题,这不是你想要的。为了控制执行过程,让它运行,并在需要时使用特殊变量终止它
还要注意字符串路径:单引号内的双引号。还有其他方法可以将带空格的字符串传递给系统命令,例如:。这对我很有用:
from selenium import webdriver
import os
import subprocess
#start Tor
sproc=subprocess.Popen('"C:\\Users\\My name\\Desktop\\Tor Browser\\Browser\\firefox.exe"' )
#start PhantomJS
service_args = [ '--proxy=localhost:9150', '--proxy-type=socks5', ]
driver = webdriver.PhantomJS(service_args=service_args)
#get page
driver.get("https://stackoverflow.com/questions/40161921/how-to-open-and-close-tor-browser-automatically-with-python")
print(driver.page_source)
driver.close()
#kill process
sproc.kill()
我认为您应该在命令之间添加一些时间暂停:
import time
time.sleep(20)# wait 20 seconds
打开Tor的另一种方法:
os.system('"C:\\Users\\My Name\\Desktop\\Tor Browser\\Browser\\firefox.exe"' )
但这次您的命令将等待被调用进程自己停止(可能是用户将关闭它)。根据你的问题,这不是你想要的。为了控制执行过程,让它运行,并在需要时使用特殊变量终止它
还要注意字符串路径:单引号内的双引号。还有其他方法可以将带空格的字符串传递给系统命令,例如:。谢谢您的回答@Alexander。firefox.exe让我很困惑。这应该在Mac上工作,还是只在Windows上工作?好的,谢谢。我错过了讨论中的那部分。现在它被编辑了。你知道如何在Mac上实现吗?谢谢你的回答@Alexander。firefox.exe让我很困惑。这应该在Mac上工作,还是只在Windows上工作?好的,谢谢。我错过了讨论中的那部分。现在它被编辑了。你知道怎么在Mac上做吗?