laravel中使用PHPQuery实现网页采集
由于没有PHPQuery的composer包安装所以需要我们手动在我们的laravel项目中安装加载PHPQuery,这里需要设置laravel的autoload->class map。
1、首先在app目录下创建一个新的文件夹,命名libs(可自定义),在libs下再创建一个phpQuery文件夹
2、找到根目录下的composer.json文件
3、找到composer.json中定义的
"autoload": {
"classmap": [
"database",
"app/libs/phpQuery" //加上
],
"psr-4": {
"App\\": "app/"
}
},
4、运行终端,cd到项目路径,执行
composer dumpautoload
然后就能在项目中愉快的使用phpQuery了,简单的用法如下:
use phpQuery;
5、PHPQuery的使用
载入文档(loading documents)
加载文档主要通过phpQuery::newDocument来进行操作,其作用是使得phpQuery可以在服务器预先读取到指定的文件或文本内容。
主要的方法包括:
phpQuery::newDocument($html, $contentType = null) phpQuery::newDocumentFile($file, $contentType = null) phpQuery::newDocumentHTML($html, $charset = ‘utf-8′) phpQuery::newDocumentXHTML($html, $charset = ‘utf-8′) phpQuery::newDocumentXML($html, $charset = ‘utf-8′) phpQuery::newDocumentPHP($html, $contentType = null) phpQuery::newDocumentFileHTML($file, $charset = ‘utf-8′) phpQuery::newDocumentFileXHTML($file, $charset = ‘utf-8′) phpQuery::newDocumentFileXML($file, $charset = ‘utf-8′) phpQuery::newDocumentFilePHP($file, $contentType)
pq()函数用法
pq()函数的用法是phpQuery的重点,主要分两部分:即选择器和过滤器
【选择器】
要了解phpQuery选择器的用法,建议先了解jQuery的语法
最常用的语法包括有:
pq('#id'):即以#号开头的ID选择器,用于选择已知ID的容器所包括的内容
pq('.classname'):即以.开头的class选择器,用于选择class匹配的容器内容
pq('parent > child'):选择指定层次结构的容器内容,如:pq('.main > p')用于选择class=main容器的所有p标签
更多的语法请参考jQuery手册
【过滤器】
主要包括::first,:last,:not,:even,:odd,:eq(index),:gt(index),:lt(index),:header,:animated等
如:
pq('p:last'):用于选择最后一个p标签
pq('tr:even'):用于选择表格中偶然行
phpQuery连贯操作
pq()函数返回的结果是一个phpQuery对象,可以对返回结果继续进行后续的操作,例如:
pq('a')->attr('href', 'newVal')->removeClass('className')->html('newHtml')->...
详情请查阅jQuery相关资料,用法基本一致,只需要注意.与->的区别即可。
最新文章
- Atitit.如何建立研发体系
- 企业IT管理员IE11升级指南【3】—— IE11 新的GPO设置
- [CareerCup] 18.10 Word Transform 单词转换
- 深入javascript
- uploadify的用法与动态传参 提供demo下载
- leetcode:Add Two Numbers
- freetds链接错误
- Hadoop MapReduce概念学习系列之JobTracker、ResourceManager、Task Tracker、NodeManager(二十一)
- 自己动手写Java大整数《3》除法和十进制转换
- 为啥使用Iscroll.js之后,a不能触发点击事件?
- BroadcastReceiver的两种注册方式之------动态注册
- EF增删改查+使用Expression进行动态排序分页
- 201521123067 《Java程序设计》第3周学习总结
- Hello World 程序的起源与历史
- Django部署方法
- python笔记26-编码规范层级目录
- 运行Maven项目时出现invalid LOC header (bad signature)错误,Tomcat不能正常启动
- python测试开发django-54.xadmin添加自定义页面
- react recompose
- BZOJ4127Abs——树链剖分+线段树
热门文章
- codeforces540E-树状数组求逆序对
- php:一个题目,关于优先级,及$a++和$a=$a+1,
- 《javascript设计模式》笔记之第九章:组合模式
- android模拟器创建时的PANIC: Could not open:错误的解决
- Appium基础二:Appium的安装(基Windows)
- PHP超全局变量、魔术变量和魔术方法
- SQL Server 2017的Linked Server配置触发的bug“Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION”
- 洛谷 P3387 【模板】缩点
- 微软Bot Framework文档中,关于Sign-in Card的一处代码错误及更正
- 使用nginx搭建一个简单的负载均衡