版权声明:本文为徐代龙原创文章,未经徐代龙允许不得转载。 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自启动问题相关推荐

  1. centos7 r语言安装_【DS】Centos7服务器上安装R和Rstudio

    笔者邀请您,先思考: 1 服务器上如何安装R和RStudio? 为了增加计算力来处理和整合更多和更杂的数据集,运维同事给我们分配了服务器.服务器是用Centos7的Linux系统,为了完成数据科学任务 ...

  2. centos7 服务器上的tomcat快速安装

    首先在制定位置创建tomcat文件夹 mkdir tomcat 上传tomcat文件,使用rz上传指定文件到目标目录下: tar -zxvf apache-tomcat-8.0.53.tar.gz 解 ...

  3. 在服务器上安装tensorflow-gpu版本及其使用

    [Deprecated]在服务器上安装tensorflow-gpu版本及其使用 已过时,不建议参考 本文档是在服务器上,不要su权限,全部命令行下载安装配置教程 ###### 系统 Centos7 显 ...

  4. DM8在银河麒麟服务器上配置Oracle19c的DBLINK服务

    文章目录 前言 一.准备工作 二.操作步骤 1.Centos7配置 2.银河麒麟配置 总结 前言 随着国产操作系统的逐步发展壮大,银河麒麟SERVER版操作系统也应用越来越多,它能够安装很多国产软件, ...

  5. Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站

    Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站 Linux 常用命令ls -l 以长格式显示-a 显示.. 和 .-A 不显示 . 和 ..-d ...

  6. Centos7超详细服务器上安装配置教程

    目录 下载 centos7 制作启动u盘 开始安装 最近实验室有新的项目开展,所以要对服务器进行重新设置要对三台服务器进行重新安装系统centos7系统,在这次安装过程中我们可以说是遇到了能遇到的所有 ...

  7. 在HP DL380 Gen9服务器上u盘安装centos7报错:/dev/root does not exits

    背景描述:从网上下载了centos7的minimal版的安装介质,并用ultraISO把安装介质写入U盘,目的是在HP DL380 Gen9服务器上,通过u盘安装centos7操作系统. 解决过程: ...

  8. CentOS7云服务器上部署小而美博客

    CentOS7云服务器上部署小而美博客 安装JRE 安装tomcat 开放端口 阿里云服务器设置 安装nginx 数据库操作 域名注册 导出war包 部署的博客地址 安装JRE 由于已经在Window ...

  9. 在Dell R730 服务器上安装CentOS7以及cadence套件

    在Dell R730 服务器上安装CentOS7以及cadence套件 前言 准备CentOS7启动盘 1.CentOS官网下载 2.制作u盘启动盘 BIOS启动 CentOS7系统安装 CentOS ...

最新文章

  1. kali linux samba,Kali Linux 渗透测试:SMB、SMTP扫描工具(14)
  2. 2018 AI产业投融资分析:热钱涌向何处,谁的“寒冬”将至?
  3. 此代码募集最优秀的答案
  4. 【Groovy】构建工具 ( 构建工具引入 | Gradle 构建工具作用 | 传统的依赖管理 )
  5. Python正则表达式集锦
  6. mysql SQLyog导入导出csv文件
  7. node nightmare 网页自动化测试 sample
  8. myeclipse9 maven web 环境
  9. 【ElasticSearch】Es 源码之 PersistedClusterStateService 源码解读
  10. 18复变函数的积分(四)
  11. 服务器修改动态磁盘,服务器动态磁盘
  12. 毕设题目:Matlab元胞自动机生命游戏
  13. win10c语言关机,win10电脑自动关机命令
  14. 中华石杉Java面试突击第一季笔记一(消息队列)
  15. 自定义View实践:指南针的实现
  16. html中dom什么意思,dom属性是什么意思啊 html dom是什么意思,通俗易懂
  17. 多功能Web文件管理器Filestash
  18. 画论29 刘道醇《宋朝名画评》
  19. 读书笔记:汇编语言 第三版 王爽 清华出版社 前言 章一 章二 章三 章四 章五
  20. 读书笔记005:《伤寒论》- 足阳明胃经

热门文章

  1. 用python给女朋友惊喜_如和用python给女朋友做个专属她的软件
  2. 雪碧图 移动端雪碧图
  3. BIOS与UEFI之间的区别
  4. FTPClient 判断文件是否存在
  5. 2.windows安装mongodb企业版
  6. mysql mmvc_深入了解事务的原理
  7. java面试app_Java面试训练app下载-Java面试题训练下载 v2.3 安卓版-IT猫扑网
  8. mysql fifo 批量加载_使用pt-fifo-split 工具往mysql插入海量数据
  9. Oracle 比较两列字段的值是否相同
  10. UR3e+robotiq+抓取仿真实验