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实现微信公众平台自定义菜单实例
Mar 20 Python
在GitHub Pages上使用Pelican搭建博客的教程
Apr 25 Python
Django 前后台的数据传递的方法
Aug 08 Python
python字典快速保存于读取的方法
Mar 23 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python实现猜单词小游戏
May 22 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
Python中的整除和取模实例
Jun 03 Python
python Pexpect模块的使用
Dec 25 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
超级简单的发送邮件程序
2006/10/09 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
php实现图片缩放功能类
2013/12/18 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
Vue基础配置讲解
2019/11/29 Javascript
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
python set集合使用方法解析
2019/11/05 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
python 实现IP子网计算
2021/02/18 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
岗位职责范本
2013/11/23 职场文书
小学生读书活动总结
2014/06/30 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis