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中的Numpy入门教程
Apr 26 Python
在Python中操作时间之mktime()方法的使用教程
May 22 Python
python实现朴素贝叶斯算法
Nov 19 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Django 批量插入数据的实现方法
Jan 12 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
django xadmin action兼容自定义model权限教程
Mar 30 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
Python如何将函数值赋给变量
Apr 28 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 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
php学习笔记之 函数声明
2011/06/09 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python实现朴素贝叶斯算法
2018/11/19 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
python中tab键是什么意思
2020/06/18 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
高中生操行评语大全
2014/04/25 职场文书
个人年终总结结尾
2015/03/06 职场文书
寻找成龙观后感
2015/06/12 职场文书
保护动物的宣传语
2015/07/13 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电