chrome 驱动程序无头选项不适用于 link?
chrome driver headless option is not working for link?
--headless 选项不适用于某些 link 我不知道为什么但适用于其他 link。
无头的需要是我必须 运行 AWS 实例上的这个爬虫,它必须需要无头的方法(无 GUI)..
link= https://shop.nordstrom.com/s/pj-salvage-animal-lover-pajama-top-plus-size/5405170/full?origin=category-personalizedsort&breadcrumb=Home%2FWomen%2FClothing&color=charcoal
使用无头选项
#for head less approch
options = Options()
options.binary_location = "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
options = Options()
options.add_argument("start-maximized")
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument("--hide-scrollbars")
options.add_argument("disable-infobars")
options.add_argument('--disable-dev-shm-usage')
options.add_argument("window-size=1920,1080")
prefs = {
"translate_whitelists": {"fr": "en", "de": "en", 'it': 'en', 'no': 'en', 'es': 'en', 'sv': 'en', 'nl': 'en',
'da': 'en', 'pl': 'en', 'fi': 'en', 'cs': 'en'},
"translate": {"enabled": "true"}
}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=options)
#################################################################################
driver = webdriver.Chrome(options=options)
作为最新版本的chromedriver(After ChromeDriver 79.0.3945.16)修复了headless模式下元素不可点击的问题。
下载最新版本chromedriver.Hopefully你的问题就解决了
这是更新日志
已修复Chrome由java命令执行期间触发的脚本警报引起的驱动程序崩溃
修复了导致 Chrome驱动程序在触发警报时锁定的错误
截图
从 Chrome 启动命令中删除了 --ignore-certificate-errors
在 Win10
上将平台和平台名称更改为 windows
固定未定义 window.navigator.webdriver 当 "enable-automation"
被排除
修复了 WPT 测试 "test_not_editable_inputs[hidden]"
修复了 "Element is not clickable" 使用无头模式时的问题
Chrome驱动更新日志和下载link
https://chromedriver.chromium.org/downloads
已编辑
对于 aws 你需要按照这些步骤
首先,您需要按照以下步骤安装chrome
sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
sudo echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
sudo apt-get -y update
sudo apt-get -y install google-chrome-stable
然后下载chrome驱动程序
wget https://chromedriver.storage.googleapis.com/index.html?path=79.0.3945.16/
unzip chromedriver_linux64.zip
现在添加权限并移动二进制文件
sudo mv chromedriver /usr/bin/chromedriver
sudo chown root:root /usr/bin/chromedriver
sudo chmod +x /usr/bin/chromedriver
为了打开chrome改变二进制路径options.binary_location
并添加参数 options.add_argument('--headless')
注意:不要忘记安装 java
经过大量搜索后,我注意到那些首先发送 JS 代码的网站在打开无头参数时遇到问题,所以我想出了使用 virtualDisplay 的解决方案..
运行 在终端或 windows cmd 或 power-shell 中安装此命令
apt-get -y install xvfb
pip install PyVirtualDisplay
pip install xvfbwrapper
这是您需要放入代码中的代码
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
编码结束后
display.stop()
--headless 选项不适用于某些 link 我不知道为什么但适用于其他 link。 无头的需要是我必须 运行 AWS 实例上的这个爬虫,它必须需要无头的方法(无 GUI).. link= https://shop.nordstrom.com/s/pj-salvage-animal-lover-pajama-top-plus-size/5405170/full?origin=category-personalizedsort&breadcrumb=Home%2FWomen%2FClothing&color=charcoal
使用无头选项
#for head less approch
options = Options()
options.binary_location = "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
options = Options()
options.add_argument("start-maximized")
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument("--hide-scrollbars")
options.add_argument("disable-infobars")
options.add_argument('--disable-dev-shm-usage')
options.add_argument("window-size=1920,1080")
prefs = {
"translate_whitelists": {"fr": "en", "de": "en", 'it': 'en', 'no': 'en', 'es': 'en', 'sv': 'en', 'nl': 'en',
'da': 'en', 'pl': 'en', 'fi': 'en', 'cs': 'en'},
"translate": {"enabled": "true"}
}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=options)
#################################################################################
driver = webdriver.Chrome(options=options)
作为最新版本的chromedriver(After ChromeDriver 79.0.3945.16)修复了headless模式下元素不可点击的问题。
下载最新版本chromedriver.Hopefully你的问题就解决了
这是更新日志
已修复Chrome由java命令执行期间触发的脚本警报引起的驱动程序崩溃
修复了导致 Chrome驱动程序在触发警报时锁定的错误 截图
从 Chrome 启动命令中删除了 --ignore-certificate-errors 在 Win10
上将平台和平台名称更改为 windows
固定未定义 window.navigator.webdriver 当 "enable-automation" 被排除
修复了 WPT 测试 "test_not_editable_inputs[hidden]"
修复了 "Element is not clickable" 使用无头模式时的问题
Chrome驱动更新日志和下载link https://chromedriver.chromium.org/downloads
已编辑 对于 aws 你需要按照这些步骤
首先,您需要按照以下步骤安装chrome
sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
sudo echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
sudo apt-get -y update
sudo apt-get -y install google-chrome-stable
然后下载chrome驱动程序
wget https://chromedriver.storage.googleapis.com/index.html?path=79.0.3945.16/
unzip chromedriver_linux64.zip
现在添加权限并移动二进制文件
sudo mv chromedriver /usr/bin/chromedriver
sudo chown root:root /usr/bin/chromedriver
sudo chmod +x /usr/bin/chromedriver
为了打开chrome改变二进制路径options.binary_location
并添加参数 options.add_argument('--headless')
注意:不要忘记安装 java
经过大量搜索后,我注意到那些首先发送 JS 代码的网站在打开无头参数时遇到问题,所以我想出了使用 virtualDisplay 的解决方案..
运行 在终端或 windows cmd 或 power-shell 中安装此命令
apt-get -y install xvfb
pip install PyVirtualDisplay
pip install xvfbwrapper
这是您需要放入代码中的代码
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
编码结束后
display.stop()