1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php使用QueryList轻松采集JavaScript动态渲染页面

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

时间:2022-05-10 07:52:18

相关推荐

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

后端开发|php教程

php,QueryList

后端开发-php教程

QueryList使用jQuery的方式来做采集,拥有丰富的插件。

eduline wap 源码,vscode卡死问题,ubuntu渲染,tomcat离线版本,修改sqlite版本号,jquery下拉菜单插件 手机中使用,左右布局的响应式前端框架,网上买爬虫在哪里买好,php 压缩 html,盐城专业seo推广,最好的网站模板网站,编辑网页的工具,简单论坛模板免费下载lzw

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

php学校班级源码,ubuntu怎么写入文件,tomcat8默认连接数,爬虫查找手机报价,php加密源码后复制后不能运行,前端seo reactlzw

推荐:《PHP教学》

易语言源码论坛,ubuntu加网卡驱动,爬虫被中断连接,php gmssl,seo 首页描述lzw

安装

使用Composer安装:

安装QueryList

composer require jaeger/querylistGitHub: /jae-jae/QueryList

安装PhantomJS插件

composer require jaeger/querylist-phantomjsGitHub: /jae-jae/QueryList-PhantomJS

下载PhantomJS二进制文件

PhantomJS官网: ,下载对应平台的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,rowser);

Example-1

获取动态渲染的HTML:

$html = $ql->browser(\)->getHtml();print_r($html);

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

$data = $ql->browser(\)->find(p)->texts();print_r($data->all());

输出:

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

使用http代理:

// 更多选项可以查看文档: /api/command-line.html$ql->browser(\,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(\); $r->setTimeout(10000); // 10 seconds $r->setDelay(3); // 3 seconds return $r;})->find(p)->texts();print_r($data->all());

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。