我正在尝试使用子进程从python启动google-chrome,但到目前为止没有成功。基本上,我有一个这样的bash命令:
-----------------------------------------------------------------
| geo | time | measure | val_cnt | val_rto |
=================================================================
| "Comrie West" | "2001-Q2" | "Count" | "0" | "" |
| "Comrie West" | "2001-Q2" | "Count" | "10" | "" |
| "Comrie West" | "2001-Q2" | "Count" | "5" | "" |
| ... | ... | ... | ... | ... |
-----------------------------------------------------------------
运行正常。我看到一个带有标签TMP_PROFILE_DIR=$(mktemp -d -t chrome.XXXXXXXXXX)
google-chrome \
--no-first-run \
--disable-gpu \
--disable-translate \
--disable-default-apps \
--disable-extensions \
--disable-background-networking \
--disable-sync \
--metrics-recording-only \
--safebrowsing-disable-auto-update \
--disable-setuid-sandbox \
--user-data-dir=${TMP_PROFILE_DIR} \
--remote-debugging-port=9222 'about:blank'
且没有配置文件的新Chrome窗口。我想在Python中重现它:
about:blank
出现窗口(但与bash情况不同),唯一得到的是此消息:
import tempfile
import subprocess
CHROME_FLAGS = [
'--start-maximized',
'--no-first-run',
'--disable-gpu',
'--disable-translate',
'--disable-default-apps',
'--disable-extensions',
'--disable-background-networking',
'--disable-sync',
'--metrics-recording-only',
'--safebrowsing-disable-auto-update',
'--disable-setuid-sandbox',
'--no-sandbox',
'--mute-audio',
]
direc = tempfile.TemporaryDirectory()
args = ['google-chrome'] \
+ CHROME_FLAGS \
+ ['--remote-debugging-port=9222', '--user-data-dir=%s' % direc.name, "'about:blank'"]
process = subprocess.Popen(args,
close_fds=True,
shell=True
)
code = self.process.wait()
我什至无法从Python中杀死窗口。任何想法如何正确启动google-chrome并从Python终止它?
答案 0 :(得分:1)
我将selenium
用于网络爬虫。
from selenium import webdriver
website = "https://www.google.com/"
driver = webdriver.Firefox() # Use .Chrome() for Chrome
driver.get(website)
我确定您需要将geckodriver
放入路径。