浅析php如何实现爬取数据原理

yipeiwu_com6年前PHP代码库

官方网站站点:简单、 灵活、强大的PHP采集工具,让采集更简单一点。

简介

QueryList使用jQuery选择器来做采集,让你告别复杂的正则表达式;QueryList具有jQuery一样的DOM操作能力、Http网络操作能力、乱码解决能力、内容过滤能力以及可扩展能力;可以轻松实现诸如:模拟登陆、伪造浏览器、HTTP代理等意复杂的网络请求;拥有丰富的插件,支持多线程采集以及使用PhantomJS采集JavaScript动态渲染的页面。

安装

通过Composer安装:

composer require jaeger/querylist

使用教程:

直接上代码:

<?php
include './vendor/autoload.php';
// 使用composer安装后引入目录
use QL\QueryList;
// 使用插件
 
$html = file_get_contents('https://www.biqudu.com/14_14778/');
// 手动获取页面
$data = QueryList::html($html);
// 得到页面内容
$data = QueryList::setHtml('https://www.biqudu.com/14_14778/');
// 等同于上面的html()
$data->rules([
  // 采集所有a标签的href属性
  'link' => ['a','href'],
  // 采集所有a标签的文本内容
  'text' => ['a','text']
  ]);
// 此处$data = 上面已经获取到网页内容之后的对象
// 设置采集规则 替代了传统正则
$data->query();
// 此处$data = 上面已经获取到网页内容之后的对象 
// query 执行操作
$data->getData();
// 此处$data = 上面已经获取到网页内容之后的对象
// 得到数据结果
$data->all();
// 此处$data = 上面已经获取到网页内容之后的对象
// 将数据转换成二维数组
print_r($data->all());
// 打印结果

上面的基本使用方法就是这样了 这样我们已经可以抓取到一定的数据了

相关文章

PHP中定义数组常量(array常量)的方法

在PHP中,我们不能用const直接定义数组常量,但是const可以定义字符串常量,结合eval()函数使字符串常量能执行。所以,我们可以用定义字符串常量的方式来返回一个数组常量。下面就...

什么情况下可以不写PHP的闭合标签“?&gt;”

在一些PHP项目里我们经常会看到有些PHP文件中的代码是只有开始标签,而没有结束标签的,那么什么情况下可以不写这个结束标签,而什么情况下又必须写? 对此我们先来看2个例子: 下面的代码可...

解析crontab php自动运行的方法

crontab是linux自带的一个命令  使php自动运行的方法php自动运行有很多方法,这里分以下DZ以及一些通过系统完成的方法和直接触发运行驻留系统的方法。Discuz后...

PHP中数组转换为SimpleXML教程

SimpleXML扩展函数提供了将XML转换为对象的工具集。这些对象处理普通的属性选择器和数组迭代器。 示例1: <?php // 将php数组转换为xml文档的代码...

PHP基于反射机制实现插件的可插拔设计详解

本文实例讲述了PHP基于反射机制实现插件的可插拔设计。分享给大家供大家参考,具体如下: 说PHP和ASP等同的朋友们可以就此打住了,PHP支持反射,而且还是非常的强大。好了,我们开始今天...