博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Phantomjs的正确打开方式
阅读量:6824 次
发布时间:2019-06-26

本文共 1293 字,大约阅读时间需要 4 分钟。

前段时间分析了Selenium+Phantomjs的使用方法以及性能优化问题,期间也分析了利用Selenium+phantomjs爬虫爬过的一些坑问题。然而在使用phantomjs的过程中,并没有正真提升phantomjs的性能,爬虫性能也没有很好的提升。经过网友的提醒,发现其实是使用phantomjs的方法出了问题,因此无论怎么优化,都不能从根本上去提升性能。那么本篇就来好好说说,Phantomjs正确的打开方式。

抛弃selenium+phantomjs

  之前我一直使用selenium去使用phantomjs,原因是因为selenium封装了phantomjs一部分功能,selenium又提供了python的接口模块,在python语言中可以很好地去使用selenium,间接地就可以使用phantomjs。然而,我现在要说的是,是时候抛弃selenium+phantomjs了,原因之一此封装的接口很久没有更新了(没人维护了),原因之二selenium只实现了一部分phantomjs功能,且很不完善。  

phantomjs APi

  通过查看phantomjs官方介绍,我们可以发现phantomjs的功能异常强大,绝不仅仅是selenium封装的功能那么简陋。phantomjs提供了很多种APi,具体可以查看:phantomjs api介绍,其中最常用的要属Phantomjs WebService与Phantomjs WebPage,前者用于开启http服务,后者用于发起http请求。

Phantomjs正确使用方式

正确打开方式应该使用phantomjs Webservice作为一种web服务的形式(api),将其与其他语言分离开来(比如python)。

设计流程

  Python通过http请求下发任务,Phantomjs Webservice获取任务后去处理,处理完以后再将结果返回给Python。任务调度、存储等复杂操作交给Python去做,Python可以写成异步并发去请求Phantomjs Webservice,需要注意的是目前一个Phantomjs Webservice只支持10个并发。但我们可以在一台服务器上多开几个phantomjs Webservice启用不同的端口即可,或者可以多台服务器做个集群,用nginx做反向代理。

Phantomjs Webservice

新建test.js,写入如下代码:

04bfe79160d01eb66b95aa9956e1885440f0d0ff

作用:处理http请求,获取url,进行截图或者获取源码操作。 
使用:

phantomjs.exe test.js

会在本地开启web服务,端口为8080。

Python Client

新建http_request.py,写入如下代码:

ff2ad0847c3337d9ccffdf7259714cde172adb20

作用:异步并发下发任务。

运行截图

运行python以后,异步下发10个任务,Phantomjs服务器端接收到url并开始处理,并发处理10个任务并输入结果。

原文发布时间为:2017-08-27

本文作者:nmask

本文来自云栖社区合作伙伴“”,了解相关信息可以关注“”微信公众号

转载地址:http://jbgzl.baihongyu.com/

你可能感兴趣的文章
VDI直接连接存储 VS. 共享存储
查看>>
专家谈零售大数据:以前没想到能做的现在可以做了
查看>>
《R语言游戏数据分析与挖掘》一3.3 高级绘图函数
查看>>
大数据带来六种全新商业模式
查看>>
美国政府网站发现JS下载器 攻击者利用网站高信誉度用于投放Cerber勒索软件
查看>>
Struts2再爆远程代码执行漏洞CVE-2017-12611 S2-053 还是升级到最新版本吧
查看>>
为什么你说“就差一个码农了”,我们是拒绝的
查看>>
Struts2远程代码执行漏洞CVE-2017-9805 s2-052 绿盟科技发布扫描工具
查看>>
安全周表彰国家优秀网络安全人才 郑文彬等10人获奖
查看>>
CISO最关注的安全问题?赛门铁克已挖掘出并给出解决方案
查看>>
十分钟看懂图像语义分割技术
查看>>
AI领域三大范式的发展简史
查看>>
《云计算:原理与范式》一第2章 迁移到云2.1 引言
查看>>
《工业控制网络安全技术与实践》一一1.5 本章小结
查看>>
报道称土耳其屏蔽网盘和GitHub以防止邮件泄露
查看>>
工信部张峰:统一的5G标准才能共享产业规模效应
查看>>
色情网站用户数据黑市开卖 不能说的“大人物”有哪些
查看>>
美最大IDC服务商Equinix宣布将继续使用可再生能源
查看>>
大规模实时数据处理openPDC
查看>>
美司法部要求Facebook配合国税局查税
查看>>