phantomjs 的使用出现不稳定现象

问题描述

命令:phantomjs--output-encoding=gbktest.jshttp://webscan.360.cn/index/checkwebsite有时候能够正常返回diaoyu_sec的值,但有个别时候却找不到diaoyu_sec的值,返回结果提示:'null'isnotanobject请问是不是因为网速问题导致这种现象呢?有什么好的补救解决方法?test.js文件如下:varpage=require('webpage').create(),system=require('system'),address;if(system.args.length===1){phantom.exit(1);}else{address=system.args[1];page.open(address,function(status){varua=page.evaluate(function(){returndocument.getElementById('diaoyu_sec').textContent;});console.log(ua);phantom.exit();});}

时间: 2024-09-21 19:20:01

phantomjs 的使用出现不稳定现象的相关文章

数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置

数据抓取是一门艺术,和其他软件不同,世界上不存在完美的.一致的.通用的抓取工具.为了不同的目的,需要定制不同的代码.不过,我们不必Start from Scratch,已经有许多的基本工具.基本方法和基础框架可供使用.不同的工具.不同的方法.不同的框架的特点也不同.了解这些工具.方法和框架是首要任务,接下来就需要明白它们的差异都在哪里.什么情境该用什么东东,最后才是析出规则.编写代码.运行程序来抓取数据.所以说,其实数据抓取的学习路线,不但很长而且很杂.     为了一个特定的目的,我需要爬取G

PhantomJS的使用

1. 简介 phantomjs 简单来说是一个基于 WebKit 的"无头浏览器"环境.对"无头",你可以理解成没有一个前端的 GUI 界面,所有的东西都在后台运行. phantomjs 在"无头"界的名声,是源于从 WebKit 里得到的对 DOM / JS 的完整支持. 一个纯后台的,完整功能的浏览器,这东西就有很多可以想像的空间了 -- 抓取,测试等. 2. 安装 http://phantomjs.org/download.html Win

nodejs通过phantomjs实现下载网页

  这篇文章主要介绍了nodejs通过phantomjs实现下载网页的方法,有需要的小伙伴可以参考下. 功能其实很见简单,通过 phantomjs.exe 采集 url 加载的资源,通过子进程的方式,启动nodejs 加载所有的资源,对于css的资源,匹配css内容,下载里面的url资源 当然功能还是很简单的,在响应式设计和异步加载的情况下,还是有很多资源没有能够下载,需要根据实际情况处理下 首先当然是下载 nodejs 和 phantomjs 下面是 phantomjs.exe 执行的 dow

[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium

        最近准备深入学习Python相关的爬虫知识了,如果说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正则表达式"就能搞定的话:那么动态生成的信息页面,如Ajax.JavaScript等就需要通过"Phantomjs + CasperJS + Selenium"来实现了.所以先从安装和功能介绍入门,后面在介绍一些Python相关的爬虫应用. 一. 介绍        PhantomJS        Pha

python selenium,PhantomJS运用 抓取滚动条滚动加载的页面, js动作操作,模拟登陆

1.运用 #!/usr/bin/python #encoding=utf-8 import sys from selenium import webdriver reload(sys) sys.setdefaultencoding( "utf-8" ) driver = webdriver.PhantomJS(executable_path='/home/lhy/phantomjs-1.9.8-linux-x86_64/bin/phantomjs') driver.get("

PhantomJS其他语言调用

PhantomJS其他语言调用 我本身是使用Java语言的,所以会考虑phantomjs如何与java交互.目前考虑方案有如下两种: 1. Java Process 抓取逻辑还是用Javascript,封装成JS脚本,用Java Process去调用和管理每个Phantomjs的进程,但是多开进程,估计对机器性能要求比较高.而且Java只能通过phantomjs的标准输出,来判断脚本执行情况. 2.Phantomjs Webdriver webdriver会开启一个http服务,其他语言可以通过

Phantomjs,Casperjs重要的概念:执行顺序

Phantomjs,Casperjs重要的概念:执行顺序 Phantomjs和Javascript一样,是基于消息驱动的.代码的执行都是异步化的. 要理解phantomjs的代码执行是基于一个step栈.在执行脚本时,会将所有step压入栈. wait,then,open,等这些都是一个step. 举几个例子: casper.wait(1000,function() { do1 } do2 do1和do2执行顺序是怎么样的? wait方法是异步的!!!,do2会先执行!!!,为了让do1和do2

基于PhantomJS实现服务器端GIS地图导出

问题描述 由于gis系统没有提供客户端地图操作结果导出功能,所以只能用截图的方式实现.实现步骤:1)客户端地图打印2)将打印内容代码上传至服务器,生成临时文件3)服务器端截取地图http://phantomjs.org/;ScreenCaptureSincePhantomJSisusingWebKit,areallayoutandrenderingengine,itcancaptureawebpageasascreenshot. 解决方案 解决方案二:顶你,好高深的东西,没有用过解决方案三:没有

基于linnux+phantomjs实现生成图片格式的网页快照_php实例

安装扩展:   (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/cas