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中使用AOP实现Redis缓存示例
Jul 11 Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 Python
python实现维吉尼亚算法
Mar 20 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
python用for循环求和的方法总结
Jul 08 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
Python pandas RFM模型应用实例详解
Nov 20 Python
TensorFlow中如何确定张量的形状实例
Jun 23 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 Python
python openssl模块安装及用法
Dec 06 Python
Python面向对象编程之类的概念
Nov 01 Python
python神经网络学习 使用Keras进行简单分类
May 04 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
多重?l件?合查?(二)
2006/10/09 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python for i in range ()用法详解
2020/09/18 Python
python实现单机五子棋
2020/08/28 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
scrapy-splash简单使用详解
2021/02/21 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
办公室驾驶员岗位职责
2013/11/15 职场文书
个人自荐材料
2014/05/23 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
个人工作总结范文2014
2014/11/07 职场文书