繁体   English   中英

如何使用 Python 自动打开和关闭 Tor 浏览器

[英]How to open and close Tor browser automatically with Python

我正在玩网络抓取和 Tor。

我设法使它同时适用于requestsSelenium + 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('start /Applications/TorBrowser.app') #sh: start: command not found

但是,以下行有效:

os.system('open /Applications/TorBrowser.app')

关闭

主要问题是之后关闭浏览器,因为在其他帖子中找到的命令都不起作用。

其中包括:

os.system("taskkill /im /Applications/TorBrowser.app /f") #sh: taskkill: command not found

或者

os.system("kill /Applications/TorBrowser.app") #sh: line 0: kill: /Applications/TorBrowser.app: arguments must be process or job IDs

或者

os.close('/Applications/TorBrowser.app') #TypeError: an integer is required (got type str)

  • 有关如何关闭它的任何建议?

  • 有没有更好的打开方式?

编辑:我在 Mac 上使用 Python 3。

这对我有用:

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"' )

但是这次您的命令将等到被调用的进程自行停止(可能是用户将关闭它)。 根据你的问题,这不是你想要的。 要控制执行过程,让它运行并使用特殊变量随时终止它。

还要注意字符串路径:单引号内的双引号。 还有其他方法可以将带空格的字符串传递给系统命令,例如: 在 python 中运行外部程序(可执行)? .

在 jupyter 中试试这个:

import webbrowser
urL='https://YOUR WEBSITE ADDRESS HERE'
mozilla_path="C:\\Users\\T14s\\Desktop\\Tor Browser\\Browser\\firefox.exe"
webbrowser.register('firefox', None,webbrowser.BackgroundBrowser(mozilla_path))
webbrowser.get('firefox').open_new_tab(urL)
import os
import time
time.sleep(10)
os.system("taskkill /im firefox.exe /f")

TOR 基于firefox - 因此firefox 出现了很多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM