linux 下selenium chrome使用详解


Posted in Python onApril 02, 2020

安装chrome

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install ./google-chrome-stable_current_x86_64.rpm
yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

安装chromedriver

淘宝源(推荐)

wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
move chromedriver /usr/bin/
chmod +x /usr/bin/chromedriver

编写selenium自动化脚本

#!/usr/bin/python
# -*-coding:utf-8-*-

import re, os
import json
import time
import random
import requests
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.wait import TimeoutException
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.select import Select

binary_location = '/usr/bin/google-chrome'
chrome_driver_binary = '/usr/bin/chromedriver'

chrome_options = Options()
chrome_options.binary_location = binary_location
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--disable-dev-shm-usage')

chromedriver = chrome_driver_binary
os.environ["webdriver.chrome.driver"] = chromedriver

BROWSER = webdriver.Chrome(executable_path='/usr/bin/chromedriver', chrome_options=chrome_options)

WAIT = WebDriverWait(BROWSER, 5)
URL = "http://www.baidu.com"
BROWSER.get(URL)
..........

踩到的坑一:

中文乱码,解决方法:

centos:

yum groupinstall fonts

ubuntu:

sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy

踩到的坑二:

不能截图,抛time out异常

selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 10.000

解决方法:

options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("start-maximized")
options.add_argument("enable-automation")
options.add_argument("--no-sandbox")
options.add_argument("--disable-infobars")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--disable-browser-side-navigation")
options.add_argument("--disable-gpu")
driver = webdriver.Chrome(chrome_options=options)
driver.set_window_size(1024, 768)
driver.get_screenshot_as_file(STATIC_FOLDER + home_img_url)
driver.close()

到此这篇关于linux 下selenium chrome使用详解的文章就介绍到这了,更多相关linux selenium chrome内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
Python中的装饰器用法详解
Jan 14 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
Python三级目录展示的实现方法
Sep 28 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
python版飞机大战代码分享
Nov 20 Python
Python实现爬取马云的微博功能示例
Feb 16 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
python科学计算之narray对象用法
Nov 25 Python
python获取引用对象的个数方式
Dec 20 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 #Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 #Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 #Python
python求前n个阶乘的和实例
Apr 02 #Python
python实现将字符串中的数字提取出来然后求和
Apr 02 #Python
python对指定字符串逆序的6种方法(小结)
Apr 02 #Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 #Python
You might like
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
javascript multibox 全选
2009/03/22 Javascript
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
人力资源专员自我评价怎么写
2013/09/19 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
音乐专业自荐信
2014/02/07 职场文书
2014年征兵标语
2014/06/20 职场文书
机关作风建设心得体会
2014/10/22 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python