欢迎来到[自学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

国家药监局:长生编造产品检验记录 变更工艺参数 大型投行外汇部门裁员暂止 营收依然大跌 对英特尔造成很大的威胁 英特尔或考虑收购博通 外媒记者提问中美贸易战 商务部长:你是美国人? 西安纹枰围棋俱乐部:大四学生招兵买马组队城围联 河南开封电视台记者楼盘采访被打:两名施暴者被拘 “单相思”特朗普屡提苹果在美建厂 苹果不为所动 威尔士赛-丁俊晖连丢三局1-4告负 爆冷止步64强 港股挫逾两百点 港交所绩前受压跌超过2% 杜特尔特友华政策获\"前任\"力挺:中国不是竞争对手 国台办点名批台湾行政机构负责人:狂妄挑战自不量力 杭州一所高中装摄像头 可捕捉分析学生表情(图)
厄齐尔遭德名宿批:退队的懦夫!他在挑衅+耍心机 最强白人仍不放弃在本季复出 会有奇迹出现吗? 滴滴的共享电单车和共享汽车来了,它们能走多远? 联盟正式警告!东部倒数第四你凭啥轮休主力 世界贸易组织预计今年全球贸易增长4.4% AETOS艾拓思:美元指数冲高回落 非美货币弱势反弹 大华继显:中美不打贸易战 钢铝行业除阴霾 欧盟称将帮希腊救火 已有400余名消防员参与 惨败帮助权健看清自己问题 索萨挑战将越来越多 夫妻想在节前捞一把 合谋老乡结伙盗工地电缆 权敬源:对阵全北感情有点微妙 要和队友做好沟通 朝鲜第31届“四月之春”友谊艺术节开幕
山西“小官巨腐”典型:2427张存折 家庭资产过亿 日海上保安厅5年后再办观阅式 美日37艘舰艇参加 徽商集团原副总张皓被诉:涉致国家利益遭重大损失 南北足球之乡对决看点十足 鸡爷阿洛或无法同时登场 苹果将海外资金转回美国 特朗普夸奖:库克了不起 IMF前首席经济学家:比特币10年内可能跌至100美元 河南孟州持枪伤警案1名嫌犯自杀身亡 3人被抓获 湖北孝感公安局长因病牺牲 3月打掉45个黑恶团伙 意媒曝安帅将出山执教 本周同那不勒斯签约 中国食品品牌排行榜 服装批发5元到15元 文科生可以报哪些专业 女生最吃香的十大职业 AG亚游集团