PhantomJS使用Chrome或Firefox的无头版本来替代

Posted gl3001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PhantomJS使用Chrome或Firefox的无头版本来替代相关的知识,希望对你有一定的参考价值。

CSDN上的孔天逸从Mozilla上提供了Selenium+Headless Firefox在Python上实现的方法:

from selenium.webdriver import Firefox
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support import expected_conditions as expected
from selenium.webdriver.support.wait import WebDriverWait
if __name__ == "__main__":
options = Options()
options.add_argument(‘-headless‘) # 无头参数
driver = Firefox(executable_path=‘geckodriver‘, firefox_options=options) # 配了环境变量第一个参数就可以省了,不然传绝对路径
wait = WebDriverWait(driver, timeout=10)
driver.get(‘http://www.google.com‘)
wait.until(expected.visibility_of_element_located((By.NAME, ‘q‘))).send_keys(‘headless firefox‘ + Keys.ENTER)
wait.until(expected.visibility_of_element_located((By.CSS_SELECTOR, ‘#ires a‘))).click()
print(driver.page_source)
driver.quit()

作者也说了,本地要有Firefox;本地要有geckodriver,最好再配置一下环境变量;别每下载一个网页实例化一个webdriver(Firefox or Chrome)然后就close()掉,实例化webdriver的时间也是时间~推荐将下载器做成单例类或将webdirver做类变量。

对于Chrome,博客园上的zhuxiaoxi提供了解决方案(需要安装chromedriver):

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument(‘--headless‘)
chrome_options.add_argument(‘--disable-gpu‘)
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("https://cnblogs.com/")

以上是关于PhantomJS使用Chrome或Firefox的无头版本来替代的主要内容,如果未能解决你的问题,请参考以下文章

selenium不支持PhantomJS的解决方法

Selenium中通过修改User-Agent标识将PhantomJS伪装成Chrome浏览器

Ubuntu 下selenium + Chrome 的安装使用

Selenium多浏览器处理 (Chrome/Firefox/IE)

Selenium之Webdriver驱动大全FirefoxChromeIEEdgeOperaPhantomJS

9使用selenium + phantomjs 模拟浏览器登录网站