chrome headless + selenium替换 phantomJS + selenium

1.Chrome和Firefox推出headless功能后,在headless浏览器这方面 phantomJS就受到了挤压,selenium后面将不再支持phantomJS了,但是作为个人项目还是可以使用的,这里记录一下,Ubuntu 18.04平台

http://phantomjs.org/download.html  //下载链接
tar -xjvf tar -xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2
sudo cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin 

把解压后可执行文件拷贝到PATH搜索路径,这样后面在生成实例的时候就不用传可执行文件的路径了。
这里搬运一下selenium的API示例代码,完成利用百度自动搜索beauty girl关键字,并生成screenshot

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.PhantomJS()
driver.get("http://www.baidu.com")
print(driver.title) //获取网页的标题

//利用Chrome开发者工具查看百度输入框的name
inputElement = driver.find_element_by_name("wd") 
inputElement.send_keys("beauty girl")

inputElement.submit()

try:
    WebDriverWait(driver, 10).until(EC.title_contains("beauty"))
    //保存查询的结果快照,虽然是headless
    driver.get_screenshot_as_file("beauty-girl.png")
    print(driver.title)  //再次输出查询返回结果页面的标题
finally:
    driver.quit()
  1. 若安装了Chrome浏览器,最好使用chrome WebDriver
	http://chromedriver.chromium.org/getting-started //下载链接
	unzip chromedriver_linux64.zip
	sudo cp chromedriver /usr/local/bin //同phantomJS安装

默认下selenium通过chrome WebDriver调用Chrome是有界面的,想要headless,需要在实例化的时候送指定的参数

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options

//第一种方法
options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=options)
//第二种方法
#chrome_options = Options()
#chrome_options.add_argument('--headless')
#driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get("http://www.baidu.com")

print(driver.title)

inputElement = driver.find_element_by_name("wd")

inputElement.send_keys("beauty girl")

inputElement.submit()
try:
    WebDriverWait(driver, 10).until(EC.title_contains("beauty"))
    driver.get_screenshot_as_file("beauty-girl.png")
    print(driver.title)
finally:
    driver.quit()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值