Centos7 服务器上phantomjs自启动问题
版权声明:本文为徐代龙原创文章,未经徐代龙允许不得转载。 https://blog.csdn.net/xudailong_blog
无界面浏览器
phantomjs是selenium子包webdriver下面的一个浏览器,本身是一个浏览器(headless browser),更详细的使用教程可移步:[官方文档]http://selenium-python-zh.readthedocs.io/en/latest/index.html
phantomjs 配置问题
很多博客写phantomjs使用教程并不是写的很详细,或许我看得不够详细,直到在工作过程中遇到问题,才花时间详细了解一下。
配置使用,建议记一下
from selenium import webdriver
# 引入配置对象DesiredCapabilities
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
dcap = dict(DesiredCapabilities.PHANTOMJS)
#从USER_AGENTS列表中随机选一个浏览器头,伪装浏览器
dcap["phantomjs.page.settings.userAgent"] = (random.choice(USER_AGENTS))
# 不载入图片,爬页面速度会快很多
dcap["phantomjs.page.settings.loadImages"] = False
# 设置代理
service_args = ['--proxy=127.0.0.1:9999','--proxy-type=socks5']
#打开带配置信息的phantomJS浏览器
driver = webdriver.PhantomJS(phantomjs_driver_path, desired_capabilities=dcap,service_args=service_args)
# 隐式等待5秒,可以自己调节
driver.implicitly_wait(5)
# 设置10秒页面超时返回,类似于requests.get()的timeout选项,driver.get()没有timeout选项
# 以前遇到过driver.get(url)一直不返回,但也不报错的问题,这时程序会卡住,设置超时选项能解决这个问题。
driver.set_page_load_timeout(10)
# 设置10秒脚本超时时间
driver.set_script_timeout(10)
需要记住的点:
(一):浏览器头设置
dcap["phantomjs.page.settings.userAgent"] = (random.choice(USER_AGENTS))
(二):图片是否载入问题
dcap["phantomjs.page.settings.loadImages"] = False
(三):代理设置
service_args = ['--proxy=127.0.0.1:9999','--proxy-type=socks5']
(四):页面连接超时时间设置
driver.set_script_timeout(10)
phantomjs进程自启动问题
因为在服务器上开启了定时任务,当把定时任务关掉后,还是会发现phantomjs会占用内存,百度(用不了梯子)了好些个方法,找到了解决的办法,这里稍微记录一下。
phantomjs 对多进程的支持性极不稳定,会出现一些莫名的问题,但是phantomjs 相对于Google浏览器占用内存少,轻量级,无界面,是一大可取之处。
(1) 代码问题:
因为这一串代码,很粗心的没有用 try catch 方法包起来,只是简单的退出来,集成在scrapy 这个框架里,难免不出现问题。
正确代码姿势:
driver = webdriver.PhantomJS()try:driver.get(request.url)print('current_url1 >>>>', driver.current_url)time.sleep(1)content = driver.page_source.encode('utf-8')driver.quit()except Exception as e:driver.quit()
总结:
生活中加上 try catch 语句总免会减少些奇葩的bug 发生,难道不是吗?heh…….
Centos7 服务器上phantomjs自启动问题相关推荐
- centos7 r语言安装_【DS】Centos7服务器上安装R和Rstudio
笔者邀请您,先思考: 1 服务器上如何安装R和RStudio? 为了增加计算力来处理和整合更多和更杂的数据集,运维同事给我们分配了服务器.服务器是用Centos7的Linux系统,为了完成数据科学任务 ...
- centos7 服务器上的tomcat快速安装
首先在制定位置创建tomcat文件夹 mkdir tomcat 上传tomcat文件,使用rz上传指定文件到目标目录下: tar -zxvf apache-tomcat-8.0.53.tar.gz 解 ...
- 在服务器上安装tensorflow-gpu版本及其使用
[Deprecated]在服务器上安装tensorflow-gpu版本及其使用 已过时,不建议参考 本文档是在服务器上,不要su权限,全部命令行下载安装配置教程 ###### 系统 Centos7 显 ...
- DM8在银河麒麟服务器上配置Oracle19c的DBLINK服务
文章目录 前言 一.准备工作 二.操作步骤 1.Centos7配置 2.银河麒麟配置 总结 前言 随着国产操作系统的逐步发展壮大,银河麒麟SERVER版操作系统也应用越来越多,它能够安装很多国产软件, ...
- Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站
Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站 Linux 常用命令ls -l 以长格式显示-a 显示.. 和 .-A 不显示 . 和 ..-d ...
- Centos7超详细服务器上安装配置教程
目录 下载 centos7 制作启动u盘 开始安装 最近实验室有新的项目开展,所以要对服务器进行重新设置要对三台服务器进行重新安装系统centos7系统,在这次安装过程中我们可以说是遇到了能遇到的所有 ...
- 在HP DL380 Gen9服务器上u盘安装centos7报错:/dev/root does not exits
背景描述:从网上下载了centos7的minimal版的安装介质,并用ultraISO把安装介质写入U盘,目的是在HP DL380 Gen9服务器上,通过u盘安装centos7操作系统. 解决过程: ...
- CentOS7云服务器上部署小而美博客
CentOS7云服务器上部署小而美博客 安装JRE 安装tomcat 开放端口 阿里云服务器设置 安装nginx 数据库操作 域名注册 导出war包 部署的博客地址 安装JRE 由于已经在Window ...
- 在Dell R730 服务器上安装CentOS7以及cadence套件
在Dell R730 服务器上安装CentOS7以及cadence套件 前言 准备CentOS7启动盘 1.CentOS官网下载 2.制作u盘启动盘 BIOS启动 CentOS7系统安装 CentOS ...
最新文章
- kali linux samba,Kali Linux 渗透测试:SMB、SMTP扫描工具(14)
- 2018 AI产业投融资分析:热钱涌向何处,谁的“寒冬”将至?
- 此代码募集最优秀的答案
- 【Groovy】构建工具 ( 构建工具引入 | Gradle 构建工具作用 | 传统的依赖管理 )
- Python正则表达式集锦
- mysql SQLyog导入导出csv文件
- node nightmare 网页自动化测试 sample
- myeclipse9 maven web 环境
- 【ElasticSearch】Es 源码之 PersistedClusterStateService 源码解读
- 18复变函数的积分(四)
- 服务器修改动态磁盘,服务器动态磁盘
- 毕设题目:Matlab元胞自动机生命游戏
- win10c语言关机,win10电脑自动关机命令
- 中华石杉Java面试突击第一季笔记一(消息队列)
- 自定义View实践:指南针的实现
- html中dom什么意思,dom属性是什么意思啊 html dom是什么意思,通俗易懂
- 多功能Web文件管理器Filestash
- 画论29 刘道醇《宋朝名画评》
- 读书笔记:汇编语言 第三版 王爽 清华出版社 前言 章一 章二 章三 章四 章五
- 读书笔记005:《伤寒论》- 足阳明胃经
热门文章
- 用python给女朋友惊喜_如和用python给女朋友做个专属她的软件
- 雪碧图 移动端雪碧图
- BIOS与UEFI之间的区别
- FTPClient 判断文件是否存在
- 2.windows安装mongodb企业版
- mysql mmvc_深入了解事务的原理
- java面试app_Java面试训练app下载-Java面试题训练下载 v2.3 安卓版-IT猫扑网
- mysql fifo 批量加载_使用pt-fifo-split 工具往mysql插入海量数据
- Oracle 比较两列字段的值是否相同
- UR3e+robotiq+抓取仿真实验