Python使用selenium + headless chrome获取网页内容的方法示例


Posted in Python onOctober 16, 2019

使用python写爬虫时,优选selenium,由于PhantomJS因内部原因已经停止更新,最新版的selenium已经使用headless chrome替换掉了PhantomJS,所以建议将selenium更新到最新版,使用selenium + headless chrome

准备工作:

安装chrome、chrome driver、selenium

一、安装chrome

配置yum下载源,在目录/etc/yum.repos.d/下新建文件google-chrome.repo

> cd /ect/yum.repos.d/
> vim google-chrome.repo

编辑google-chrome.repo,内容如下,保存退出

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

安装google chrome浏览器:

> yum -y install google-chrome-stable

PS: Google官方源可能在中国无法使用,导致安装失败或者在国内无法更新,可以添加以下参数来安装:

> yum -y install google-chrome-stable --nogpgcheck

这样,google chrome即可安装成功。

二、安装chrome driver

查看上述安装的chrome版本,根据版本选择对应的chrome driver下载,下载之后放到/usr/local/bin目录

三、安装selenium

> pip install selenium

上述准备工作完成后,就可以开始写代码了

from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options


options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('lang=zh_CN.UTF-8')

# 在linux上需要添加一下两个参数
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

browser = Chrome(chrome_options=options)
browser.set_page_load_timeout(30)
browser.set_script_timeout(30)
browser.get(url)

# 获取返回内容
print browser.page_source

# 查找元素
print browser.find_element_by_tag_name('pre').text

备注:如果访问一些详情页有cookie验证,可以先访问主页,然后再访问详情页,webdriver会自动携带cookie

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 合并文件的具体实例
Aug 08 Python
Python学习笔记之os模块使用总结
Nov 03 Python
详解Python中for循环是如何工作的
Jun 30 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 Python
《与孩子一起学编程》python自测题
May 27 Python
Python enumerate函数功能与用法示例
Mar 01 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
python如何统计代码运行的时长
Jul 24 Python
Python 日志logging模块用法简单示例
Oct 18 Python
python tkinter实现连连看游戏
Nov 16 Python
python Polars库的使用简介
Apr 21 Python
Python数据分析之pandas读取数据
Jun 02 Python
使用python实现kNN分类算法
Oct 16 #Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 #Python
python可视化实现KNN算法
Oct 16 #Python
python实现KNN分类算法
Oct 16 #Python
python子线程退出及线程退出控制的代码
Oct 16 #Python
python Pillow图像处理方法汇总
Oct 16 #Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 #Python
You might like
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
php图像处理类实例
2015/07/28 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
JsRender for object语法简介
2014/10/31 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
Python实现批量修改文件名实例
2015/07/08 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
Python当中的array数组对象实例详解
2019/06/12 Python
Python如何实现动态数组
2019/11/02 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
python 使用shutil复制图片的例子
2019/12/13 Python
python实现低通滤波器代码
2020/02/26 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
材料成型专业个人求职信范文
2013/09/25 职场文书
前台领班岗位职责
2013/12/04 职场文书
应届生自荐书
2014/06/23 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
2015员工年度考核评语
2015/03/25 职场文书
售后服务质量承诺书
2015/04/29 职场文书