欢迎来到[自学php网] ①群 AG亚游集团

AG亚游集团 > php专栏 > php综合实列 >

php使用QueryList入门之轻松采集JavaScript动态渲染页面

来源:未知 ?? 时间:2018-07-23 13:59?作者:小飞侠

[导读] 下面来演示 QueryList 使用 PhantomJS 插件抓取JS动态创建的页面内容。 安装 使用Composer安装: 安装QueryList composerrequirejaeger/querylist GitHub: /githubaff4com/jae-jae/QueryList 安装PhantomJS插件 compos...

下面来演示QueryList使用PhantomJS插件抓取JS动态创建的页面内容。


安装

使用Composer安装:


安装QueryList


composer require jaeger/querylist
GitHub: /githubaff4com/jae-jae/QueryList


安装PhantomJS插件


composer require jaeger/querylist-phantomjs
GitHub: /githubaff4com/jae-jae/QueryList-PhantomJS


下载PhantomJS二进制文件

PhantomJS官网:/phantomjsaff4org ,下载对应平台的PhantomJS二进制文件。


插件API

QueryList browser($url,$debug = false,$commandOpt = []):使用浏览器打开连接


使用

以采集「今日头条」手机版为例,「今日头条」手机版基于React框架,内容是纯动态渲染出来的。


下面演示QueryList的PhantomJs插件用法:


安装插件


use QL\QueryList;use QL\Ext\PhantomJs;$ql = QueryList::getInstance();/安装时需要设置PhantomJS二进制文件路径$ql->use(PhantomJs::class,'/usr/local/bin/phantomjs');/or Custom function name$ql->use(PhantomJs::class,'/usr/local/bin/phantomjs','browser');

Example-1


获取动态渲染的HTML:


$html = $ql->browser('/maff4toutiaoaff4com')->getHtml();print_r($html);

获取所有p标签文本内容:


$data = $ql->browser('/maff4toutiaoaff4com')->find('p')->texts();print_r($data->all());

输出:


Array([0] => 自拍模式开启!国庆假期我和国旗合个影[1] => 你旅途已开始 他们仍在自己的岗位上为你的假期保驾护航[2] => 喜极而泣,都教授终于回到地球了!/....)


使用http代理:


/更多选项可以查看文档: /phantomjsaff4org/api/command-line.html$ql->browser('/maff4toutiaoaff4com',true,[/使用http代理'--proxy' => '192.168.1.42:8080','--proxy-type' => 'http'])

Example-2


自定义一个复杂的请求:


$data = $ql->browser(function (\JonnyW\PhantomJs\Http\RequestInterface $r){$r->setMethod('GET');$r->setUrl('/maff4toutiaoaff4com');$r->setTimeout(10000); /10 seconds$r->setDelay(3); /3 secondsreturn $r;})->find('p')->texts();print_r($data->all());

开启debug模式,并从本地加载cookie文件:


$data = $ql->browser(function (\JonnyW\PhantomJs\Http\RequestInterface $r){$r->setMethod('GET');$r->setUrl('/maff4toutiaoaff4com');$r->setTimeout(10000); /10 seconds$r->setDelay(3); /3 secondsreturn $r;},true,['--cookies-file' => '/path/to/cookies.txt'])->rules(['title' => ['p','text'],'link' => ['a','href']])->query()->getData();print_r($data->all());


最新文章

点击排行

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号@版权所有AG亚游集团

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

中国制造的这个“巨无霸”将出口 终结欧美垄断 解放军台海军演距金门仅60公里 金门突然停电 新加坡凭什么成美朝首脑会晤承办方?专家这样说 赶集网等二手交易平台乱象频发:以次充好 吞吃押金 科学家也当“敢死队”:诺奖得主曾给自己心脏插管 别气馁!一方距离实现1球小目标就差了一个立柱 央行参事盛松成:中美贸易逆差实际上没那么大 瑞银用选股技术预测世界杯:德国队夺冠机会最大 货车司机开车出门改善伙食 醉驾蛇形行驶连撞7车 鲍威尔“鹰派”威力漂洋过海 欧股承压下滑 多特门神:罗伊斯总能满血回归 像没受过伤一样 外卖小哥逆行拖行辅警十余米:单马上要超时(视频)
半月谈:举债办丧事 一个县一年能“埋”2个亿 一家人嫌转院费贵自制“救护车” 结果被罚500元 美国一天三次对中国输美产品采取贸易救济措施 台嫌犯涉走私50公斤安非他命 遭印尼警方射伤逮捕 男子一家三口同时铅中毒 因将料酒装锡壶一个多月 新华网评二更事件:自媒体“蹭”热点不能丧失良知 野村:A股近期反弹或延续到8月底 9月左右再起波澜 “黑客”非法下载数据致网站瘫痪 拿赚的钱买年货 法乐第未来前高管与贾跃亭逐鹿中国 国资委主任肖亚庆:让国企走上高质量发展之路 中兴再回应美制裁:将通过合法手段维护自身权益 日本电视台再播南京大屠杀纪录片:尸体堵住江水
原油静待方向明朗 扫黄打非办:加大重拳打击网络淫秽色情和低俗信息 Titleist回应开球距离报告:并没有坏趋势显现 用户数据遭“窃用” 扎克伯格在国会致歉 CAFI 小幅走低 齐达内:选择决赛首发让人头疼 好球员都想来皇马 暑期档中场战事:阿里影业VS华谊VS万达 法警押回涉案奥迪车高速上被逼停 20余人打砸车辆 韩检方以16项指控起诉李明博 涉嫌受贿110亿韩元 马云说未来赚钱的行业 在农村养殖什么赚钱 小投资冷门暴利行业 亩收益10万的种植品种 AG亚游集团