PHP获取HTML内容及动态渲染js加载内容
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP获取HTML内容及动态渲染js加载内容,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1861字,纯文字阅读大概需要3分钟。
内容图文
![PHP获取HTML内容及动态渲染js加载内容](/upload/InfoBanner/zyjiaocheng/850/137c476175ae4d728615ab53290a7ea2.jpg)
写爬虫的时候,使用guzzle异步并发的get请求真的好用,可以快速爬取,及时PHP不是多线程的,却能使用协程实现异步并发-用户态的多线程,也有时候,请求地址返回的页面很多待执行的JavaScript代码,数据需要动态渲染上去,这里有个简单的方法
就是使用querylist,用了这个扩展也可以不再依赖php的dom解析工具-simpledom,也自带了远程获取功能。
1.安装
安装querylist
composer require jaeger/querylist
安装phantomjs
composer require jaeger/querylist-phantomjs //PHP版本必须 >=7.0
下载对应你电脑系统的PhantomJS二进制文件,放到电脑任意路径,下面会用到这个路径,下载页面直达:http://phantomjs.org/download.html
2.使用
Linux下示例:
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');
Windows下示例:
$ql->use(PhantomJs::class,'C:/phantomjs/bin/phantomjs.exe'); $html = $ql->browser('https://m.toutiao.com')->getHtml(); print_r($html);
相关文档:
https://doc.querylist.cc/
示例:
检索书籍在百度的搜索排行榜,直接curl发送get请求获取到的html是木有数据的,因为搜索结果页是异步JavaScript获取的。
<?php // 设置脚本超时 set_time_limit(0); // 内存限制 ini_set('memory_limit', '2014M'); // 第三方库 require_once('./vendor/autoload.php'); use QL\QueryList; use QL\Ext\PhantomJs; // 获取搜索结果 $book_name = '我的贴身校花'; $ql = QueryList::getInstance(); $ql->use(PhantomJs::class,'D:\webserver\www\phantomjs.exe'); $html = $ql->browser('https://m.baidu.com/s?word='.urlencode($book_name))->getHtml(); $z = $ql->find('.c-result-content:eq(0)')->find('.c-color-gray:eq(0)')->texts(); $z = $z->all(); file_put_contents('./check.log', $v.' ==> '.current($z)."\n", FILE_APPEND);
搜索截图:
---------------------
作者:qq_42413925
来源:CSDN
原文:https://blog.csdn.net/qq_42413925/article/details/80619697
版权声明:本文为博主原创文章,转载请附上博文链接!
内容总结
以上是互联网集市为您收集整理的PHP获取HTML内容及动态渲染js加载内容全部内容,希望文章能够帮你解决PHP获取HTML内容及动态渲染js加载内容所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。