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自动化脚本安装指定版本python环境详解
Sep 14 Python
python spyder中读取txt为图片的方法
Apr 27 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
pandas 选取行和列数据的方法详解
Aug 08 Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
Python配置pip国内镜像源的实现
Aug 20 Python
Django 实现图片上传和下载功能
Dec 31 Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 Python
Python3 使用pip安装git并获取Yahoo金融数据的操作
Apr 08 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
PHPMyAdmin 快速配置方法
2009/05/11 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
JS的replace方法介绍
2012/10/20 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
js获取class的所有元素
2013/03/28 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
Python的动态重新封装的教程
2015/04/11 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
西班牙手机之家:Phone House
2018/10/18 全球购物
领导干部作风整顿剖析材料
2014/10/11 职场文书
招商引资工作汇报
2014/10/28 职场文书
小学生毕业评语
2014/12/26 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
东京审判观后感
2015/06/01 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
Golang的继承模拟实例
2021/06/30 Golang
python中的getter与setter你了解吗
2022/03/24 Python