环境要求
PHP >= 7.0
如果你的PHP版本还停留在PHP5,或者不会使用Composer,你可以选择使用QueryList3,QueryList3支持php5.3以及手动安装。 QueryList3 档:http://v3.querylist.cc
更换国内镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

安装
通过Composer安装:

composer require jaeger/querylist:~V4

使用
元素操作

1.采集「昵图网」所有图片地址

QueryList::get('http://www.nipic.com')->find('img')->attrs('src');

2.采集百度搜索结果

$ql = QueryList::get('http://www.baidu.com/s?wd=QueryList');$ql->find('title')->text(); // 获取网站标题
$ql->find('meta[name=keywords]')->content; // 获取网站头部关键词$ql->find('h3>a')->texts(); //获取搜索结果标题列表
$ql->find('h3>a')->attrs('href'); //获取搜索结果链接列表$ql->find('img')->src; //获取第一张图片的链接地址
$ql->find('img:eq(1)')->src; //获取第二张图片的链接地址
$ql->find('img')->eq(2)->src; //获取第三张图片的链接地址
// 遍历所有图片
$ql->find('img')->map(function($img){echo $img->alt;  //打印图片的alt属性
});

3.更多用法

$ql->find('#head')->append('<div>追加内容</div>')->find('div')->htmls();
$ql->find('.two')->children('img')->attrs('alt'); //获取class为two元素下的所有img孩子节点
//遍历class为two元素下的所有孩子节点
$data = $ql->find('.two')->children()->map(function ($item){//用is判断节点类型if($item->is('a')){return $item->text();}elseif($item->is('img')){return $item->alt;}
});$ql->find('a')->attr('href', 'newVal')->removeClass('className')->html('newHtml')->...
$ql->find('div > p')->add('div > ul')->filter(':has(a)')->find('p:first')->nextAll()->andSelf()->...
$ql->find('div.old')->replaceWith( $ql->find('div.new')->clone())->appendTo('.trash')->prepend('Deleted')->...

4.列表采集

$data = QueryList::get('http://www.baidu.com/s?wd=QueryList')// 设置采集规则->rules([ 'title'=>array('h3','text'),'link'=>array('h3>a','href')])->query()->getData();print_r($data->all());
//采集结果显示
Array
([0] => Array([title] => QueryList|基于phpQuery的无比强大的PHP采集工具[link] => http://www.baidu.com/link?url=GU_YbDT2IHk4ns1tjG2I8_vjmH0SCJEAPuuZN)[1] => Array([title] => PHP 用QueryList抓取网页内容 - wb145230 - 博客园[link] => http://www.baidu.com/link?url=zn0DXBnrvIF2ibRVW34KcRVFG1_bCdZvqvwIhUqiXaS)[2] => Array([title] => 介绍- QueryList指导文档[link] => http://www.baidu.com/link?url=pSypvMovqS4v2sWeQo5fDBJ4EoYhXYi0Lxx)//...
)

5.编码转换

// 输出编码:UTF-8,输入编码:GB2312
QueryList::get('https://top.etao.com')->encoding('UTF-8','GB2312')->find('a')->texts();// 输出编码:UTF-8,输入编码:自动识别
QueryList::get('https://top.etao.com')->encoding('UTF-8')->find('a')->texts();

6.HTTP网络操作

//采集新浪微博需要登录才能访问的页面
$ql = QueryList::get('http://weibo.com','param1=testvalue & params2=somevalue',['headers' => [//填写从浏览器获取到的cookie'Cookie' => 'SINAGLOBAL=546064; wb_cmtLike_2112031=1; wvr=6;....']
]);
//echo $ql->getHtml();
echo $ql->find('title')->text();
//输出: 我的首页 微博-随时随地发现新鲜事

7.模拟登录

// 用post登录
$ql = QueryList::post('http://xxxx.com/login',['username' => 'admin','password' => '123456'
])->get('http://xxx.com/admin');
//采集需要登录才能访问的页面
$ql->get('http://xxx.com/admin/page');
//echo $ql->getHtml();//from表单操作
// 获取QueryList实例
$ql = QueryList::getInstance();
//获取到登录表单
$form = $ql->get('https://github.com/login')->find('form');//填写GitHub用户名和密码
$form->find('input[name=login]')->val('your github username or email');
$form->find('input[name=password]')->val('your github password');//序列化表单数据
$fromData = $form->serializeArray();
$postData = [];
foreach ($fromData as $item) {$postData[$item['name']] = $item['value'];
}//提交登录表单
$actionUrl = 'https://github.com'.$form->attr('action');
$ql->post($actionUrl,$postData);
//判断登录是否成功
// echo $ql->getHtml();
$userName = $ql->find('.header-nav-current-user>.css-truncate-target')->text();
if($userName)
{echo '登录成功!欢迎你:'.$userName;
}else{echo '登录失败!';
}

其他更详细参照链接点击

php用QueryList异步爬取网页数据相关推荐

  1. QueryList异步抓取网页数据

    环境要求: php7及以上 phantomjs引擎 下载地址 QueryList4.0 核心思想: 根据抓取对象网页的布局,编写相应的规则,规则语法参考jquery即可. 抓取示例: 京东商城产品列表 ...

  2. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

  3. python爬取网页公开数据_如何用Python爬取网页数据

    使用Python爬取网页数据的方法: 一.利用webbrowser.open()打开一个网站:>>> import webbrowser >>> webbrowse ...

  4. 编程python爬取网页数据教程_实例讲解Python爬取网页数据

    一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...

  5. python爬取网页数据(例如淘宝)

    爬取网页数据(例如淘宝) 现在淘宝商品页面不能直接爬取,需要登录,所以我们得实现模拟登录,如下即可实现模拟登录: import requests cookie_str = r'cna=QsJDGKPt ...

  6. python爬虫教程:实例讲解Python爬取网页数据

    这篇文章给大家通过实例讲解了Python爬取网页数据的步骤以及操作过程,有兴趣的朋友跟着学习下吧. 一.利用webbrowser.open()打开一个网站: >>> import w ...

  7. 如何使用python实现简单爬取网页数据并导入MySQL中的数据库

    前言:要使用 Python 爬取网页数据并将数据导入 MySQL 数据库,您需要使用 Requests 库进行网页抓取,使用 BeautifulSoup 库对抓取到的 HTML 进行解析,并使用 Py ...

  8. Python小姿势 - Python爬取网页数据

    Python爬取网页数据 爬取网页数据是一个比较常见的Python应用场景,有很多第三方库可以帮助我们完成这个任务.这里我们介绍一下urllib库中的一个常用方法:urllib.request.url ...

  9. python初学-爬取网页数据

    python初学-爬取网页数据 1,获取网页源代码 import urllib url = 'http://www.163.com'wp = urllib.urlopen(url) file_cont ...

最新文章

  1. python多条件排序
  2. 051_元素之间空白间隙解决方案
  3. Python爬虫解析html:lxml的HtmlElement对象获取和设置inner html
  4. java类与对象 演练 查找并修改姓名
  5. iOS使用新浪微博、微信官方SDK分享内容
  6. 网页中Flash播放器常用参数设置(转)
  7. Teamcenter 2007之错误信息提示
  8. random number in groovy
  9. 定时任务cron表达式
  10. 嵌入式C语言编程中经验教训总结(一) 详解const、static和volatile
  11. Task Scheduler 对win7中任务计划的编程
  12. js/javaScript通过setTimeout做动画和需要注意的点
  13. 【图像分割】基于FCM+KFCM MRI图像分割matlab源码含GUI
  14. 互联互通PSAM卡发卡注意事项与要点总结
  15. 微软Office Powerpoint双击打不开后的修复办法
  16. Unity快速实现回合制游戏
  17. Tofu Icecream and Tai-chi man
  18. 数据库二级复习笔记(1)选择题
  19. C语言基础:if语句
  20. 目标检测框架网络模型分析(二 双塔奇兵)

热门文章

  1. [vSphere]ESXi异常断电导致虚拟机无法打开
  2. U盘重装win10(三)重装系统
  3. B端产品经理的发展路径思考(间歇性更新完毕)
  4. 不识字也能翻译:谷歌AI直接用音频翻音频,不用先转文本
  5. 在微型计算机中机器指令和数据都是以二进制,计算机考试试卷及答案
  6. 一个net程序猿必备工具
  7. Facebook广告投放技巧
  8. 使用signapk工具给apk系统签名
  9. 二值图像的噪点去除算法
  10. 可以将照片转换成素描效果的软件:Photo Sketch for Mac