解决phantomjs截图失败,phantom.exit位置的问题
刚刚学习使用phantomjs,根据网上帖子自己手动改了一个延时截图功能,发现延时功能就是不能执行,最后一点点排查出了问题。
看代码:
var page = require('webpage').create(), system = require('system'), address,file; if (system.args.length === 1) { console.log('Usage: netlog.js <some URL>'); phantom.exit(1); } else { address = system.args[1]; file = system.args[2]; page.open(address, function (status) { if (status == 'success') { console.log('success file is ' + file); } window.setTimeout(function () { console.log('render ok'); page.render(file); phantom.exit();//<span style="color:#ff0000;">必须在settimeout里面调用结束语句</span> },60*1000); }); }
手动改的代码setTimeout里没有写phantom.exit(),而是放在setTimeout外面了,怎么都不能执行setTimeout里面的语句,放进去就ok了。。。
以上这篇解决phantomjs截图失败,phantom.exit位置的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
1.引言 在Python网络爬虫内容提取器一文我们详细讲解了核心部件:可插拔的内容提取器类gsExtractor.本文记录了确定gsExtractor的技术路线过程中所做的编程实验.这是第二部分,第一部分实验了用xslt方式一次性提取静态网页内容并转换成xml格式.留下了一个问题:javascript管理的动态内容怎样提取?那么本文就回答这个问题. 2.提取动态内容的技术部件 在上一篇python使用xslt提取网页数据中,要提取的内容是直接从网页的source code里拿到的.但是一些Aja
-
使用phantomjs进行网页抓取的实现代码
phantomjs因为是无头浏览器可以跑js,所以同样可以跑dom节点,用来进行网页抓取是再好不过了. 比如我们要批量抓取网页 "历史上的今天" 的内容.网站 对dom结构的观察发现,我们只需要取到 .list li a的title值即可.因此我们利用高级选择器构建dom片段 var d= '' var c = document.querySelectorAll('.list li a') var l = c.length; for(var i =0;i<l;i++){ d=d+
-
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
利用PhantomJS做网页截图经济适用,但其API较少,做其他功能就比较吃力了.例如,其自带的Web Server Mongoose最高只能同时支持10个请求,指望他能独立成为一个服务是不怎么实际的.所以这里需要另一个语言来支撑服务,这里选用NodeJS来完成. 安装PhantomJS 首先,去PhantomJS官网下载对应平台的版本,或者下载源代码自行编译.然后将PhantomJS配置进环境变量,输入 $ phantomjs 如果有反应,那么就可以进行下一步了. 利用PhantomJS进行简
-
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG. PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等. PhantomJs官网:http://phantomjs.org/ GitHub:https://github.com/ariya/phantomjs/wiki/Quick
-
C#使用Selenium+PhantomJS抓取数据
手头项目需要抓取一个用js渲染出来的网站中的数据.使用常用的httpclient抓回来的页面是没有数据.上网百度了一下,大家推荐的方案是使用PhantomJS.PhantomJS是一个没有界面的webkit浏览器,能够和浏览器效果一致的使用js渲染页面.Selenium是一个web测试框架.使用Selenium来操作PhantomJS绝配.但是网上的例子多是Python的.无奈,下载了python按照教程搞了一下,卡在了Selenium的导入问题上.遂放弃,还是用自己惯用的c#吧,就不信c#上没
-
基于linnux+phantomjs实现生成图片格式的网页快照
安装扩展: (1)下面是我在linux上的安装过程,如果没有安装git请先yum install git 安装casperjs 复制代码 代码如下: cd / git clone git://github.com/n1k0/casperjs.git cd casperjs ln -sf /casperjs/bin/casperjs /usr/local/bin/casperjs //可以忽略 实际执行中php是执行 /casperjs/bin/casperj
-
Java PhantomJs完成html图片输出功能
借助phantomJs来实现将html网页输出为图片 I. 背景 如何在小程序里面生成一张图,分享到朋友圈呢?目前前端貌似没有太好的解决方法,所以只能猥琐的由后端来支持掉,那么可以怎么玩? 生成图片比较简单 简单的场景,可以直接用jdk来支持掉,一般来讲也没有太复杂的逻辑 之前写过一个图片合成的逻辑,利用awt实现: 图片合成 通用.复杂的模板 简单的可以直接支持,但复杂一点的,让后端来支持,无疑比较恶心,在github上也搜索了一些渲染html的开源库,不知道是姿势不对还是咋的,没有太满意的结
-
基于Phantomjs生成PDF的实现方法
本文实例讲述了基于Phantomjs生成PDF的实现方法.分享给大家供大家参考,具体如下: 最近在node.js项目开发中,遇见生成PDF的需求,当然生成PDF不是一个新意的需求:我可以选择利用开源的pdfkit或者其他node pdf模块,或者通过edge.js调用.net/python下的pdf库去做生成pdf.但是在我看来对于这些东西不管如何也需要花费我们太多的时间(pdf报表的内容报表很复杂),不如把所有的画图实现逻辑推向大家所熟悉的html+css来的简洁,快速,这样对于pdf格式变化
-
Phantomjs抓取渲染JS后的网页(Python代码)
最近需要爬取某网站,无奈页面都是JS渲染后生成的,普通的爬虫框架搞不定,于是想到用Phantomjs搭一个代理. Python调用Phantomjs貌似没有现成的第三方库(如果有,请告知小编),漫步了一圈,发现只有pyspider提供了现成的方案. 简单试用了一下,感觉pyspider更像一个为新手打造的爬虫工具,好比一个老妈子,有时无微不至,有时喋喋不休. 轻巧的小工具应该更受人喜爱,我也怀着一点私心,可以带着我最爱的BeautifulSoup一块儿用,而不用再学PyQuery(pyspide
-
Windows系统下PhantomJS的安装和基本用法
1.安装 下载网址:http://phantomjs.org/download.html 选择合适的版本.然后解压即可. 环境变量的配置: 进入解压的路径: 例如我是解压在D:\Python\phantomjs-2.1.1-windows\bin,将这个路径编辑在上图的末尾.就可以使用了. 如果刚配置好,在使用的时候,提示环境变量没有配置好的话,不妨重启一下电脑试试. 2 基本用法 引入: from selenium import webdriver # 使用webkit无界面浏览器 drive
-
phantomjs导出html到pdf的方法总结
最近要为我们的文章服务做一个转pdf的功能.经过比较,我觉得phantomjs是转化比较好的.现在讲讲如何使用. 环境 centos x86_64 下载 可以到官网下载: 官网 或者wget也可以: wget -P /tmp/ https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 安装 // 解压 tar xjf /tmp/phantomjs-2.1.1-linux-x86_64.
-
java利用phantomjs进行截图实例教程
前言 最近工作中遇到一个需求,需要实现截图功能,断断续续查找资料.验证不同的实现方法终于算基本搞定了页面截图,因为中间过程曲折花费较多时间,分享出来帮助大家快速实现截图 为什么选用phantomjs进行截图 截图可以实现的方式有很多,比如: selenium HtmlUnit Html2Image...and so on但是这些实现的截图效果都不好.selenium只能实现截屏,不能截取整个页面,而HtmlUnit.Html2Image对js的支持效果并不好,截下来的图会有很多空白.phanto
-
Node.JS利用PhantomJs抓取网页入门教程
前言 当想用 nodejs 抓取一些网页 , 我第一反应想到的就是使用 http 模块 , 比如抓取百度首页: var http = require('http'); var req = http.request('http://www.baidu.com/', function (res) { res.setEncoding('utf8'); res.on('data', function (chunk) { //响应内容 console.log(chunk) }); }); req.end(
随机推荐
- Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法
- 关于Vue实现组件信息的缓存问题
- shtml精简教程让你知道什么是shtml
- 正则表达式教程之位置匹配详解
- C语言通过深度优先搜索来解电梯问题和N皇后问题的示例
- JS Testing Properties 判断属性是否在对象里的方法
- 全面了解addEventListener和on的区别
- 分享XmlHttpRequest调用Webservice的一点心得
- JavaScript在ASP页面中实现掩码文本框效果代码
- 解决bash: mysql: command not found 的方法
- 详解VueJS 数据驱动和依赖追踪分析
- 快递员工自曝!快递行业的龌龊事迹
- Linux查看系统版本的方法汇总
- JavaScript 学习历程和心得分享
- php开发过程中关于继承的使用方法分享
- 基于Java代码实现支付充值的通用流程
- matplotlib中legend位置调整解析
- JS中使用textPath实现线条上的文字
- 快速了解Python开发中的cookie及简单代码示例
- 使用Vue.js和Element-UI做一个简单登录页面的实例