一、jquerylist访问网址
http://www.querylist.cc/docs/guide/v4/overview
二、tp5根目录下打开命令窗口
运行:composer require jaeger/querylist
下面就可以在控制器里面写采集的方法了,更多操作可根据文档按自己的需求写
三、控制器方法(例子)
以一下这个网站搜索采集例子:http://www2.soopat.com/Home/Result?SearchWord=%E6%9D%8E%E4%BD%B3%E7%8E%B2&FMZL=Y&SYXX=Y&WGZL=Y&FMSQ=Y
<?php
namespace app\index\controller;
use QL\QueryList;
class Index
{
/*单元素采集*/
public function index()
{
//采集某页面所有的图片
$data = QueryList::get('http://www2.soopat.com/Home/Result?SearchWord=%E6%9D%8E%E4%BD%B3%E7%8E%B2&FMZL=Y&SYXX=Y&WGZL=Y&FMSQ=Y')->find('img')->attrs('src');
//打印结果
print_r($data->all());
}
//http://www2.soopat.com/Home/Result?SearchWord=%E6%9D%8E%E4%BD%B3%E7%8E%B2&FMZL=Y&SYXX=Y&WGZL=Y&FMSQ=Y
//返回结果
/*Array (
[0] => /Content/images/common/middlelogo.gif
[1] => /content/images/home/excel.png
[2] => http://portal.soopat.com/content/images/ask_dc/star_level1.gif
...
)*/
//https://search.jd.com/Search?keyword=%E7%94%B5%E9%A3%8E%E6%89%87&enc=utf-8&suggest=1.def.0.V14--12,20,&wq=dfs&pvid=afd8415ea7d5406cb90dd08a53f76cd0
//https://ai.taobao.com/search/index.htm?pid=mm_121795750_22160345_126532329&unid=&source_id=search&key=%E8%BF%9E%E8%A1%A3%E8%A3%99&b=sousuo_ssk&clk1=&prepvid=200_11.27.26.228_11209_1557299550940&spm=a231o.7712113%2Fg.a3342.1
/*
* 采集列表
* */
public function collectList(){
$url = 'http://www2.soopat.com/Home/Result?SearchWord=%E6%9D%8E%E4%BD%B3%E7%8E%B2&FMZL=Y&SYXX=Y&WGZL=Y&FMSQ=Y';
// 定义采集规则
$rules = [
// 采集文章标题
'title' => ['.PatentTypeBlock>a','text'],
// 采集文章作者
'author' => ['.rh','text'],
// 采集文章内容
'content' => ['.PatentContentBlock','text']
];
$rt = QueryList::get($url)->rules($rules)->query()->getData();
print_r($rt->all());
}
/*
* Array (
* [0] => Array (
* [title] => 汽车车灯 - 201630252704.8
* [author] => 李佳玲
* [content] => 发明人:李佳玲...
* 摘要:1.本外观设计产品的名称:汽车车灯。
* 2.本外观设计产品的用途:本外观设计产品用于汽车前照大灯,防散光设计,输出光型更好更聚光,安装简易,即装即用。
* 3.本外观设计产品的设计要点:产品整体的形状。4.最能表明本外观设计设计要点的图片或照片:立体...
* )
* [1] => Array (
* [title] => 一种LED彩灯 - 201220712237.9
* [author] => 李佳玲
* [content] => 发明人:张旭霞;李佳玲;马凤军...摘要:本实用新型涉及灯具技术领域,具体涉及一种LED彩灯。
* 它包含灯体(1)、环形彩色反光镜(2)和LED灯板(3);灯体(1)的中心位置设置有环形彩色反光镜(2),
* 环形彩色反光镜(2)外围均匀设置有多个LED灯板(3)。它外形美观,使用效果好,不...
* )
* )
* */
/*
* 单元素采集和列表采集过滤内容
* */
public function contentFiltering(){
$url = 'http://www2.soopat.com/Home/Result?SearchWord=%E6%9D%8E%E4%BD%B3%E7%8E%B2&FMZL=Y&SYXX=Y&WGZL=Y&FMSQ=Y';
// $html =<<<STR
// <h2 id="PatentTypeBlock">
// <font size="-1">
// <input name="cb" value="18369569"
// type="checkbox" patentid="18369569"
// sqh="201630252704" mc="汽车车灯"
// style="position: absolute; z-index: -1;
// visibility: hidden;">
// <span class="jquery-safari-checkbox">
// <span class="mark">
// <img src="/content/images/common/Checkbox/empty.png">
// </span>
// </span>[外观]
// </font>
// <a href="/Patent/201630252704" target="_blank">汽车车灯 - <font size="-1">201630252704.8</font></a>
// <div class="stateico stateicoinvalid" onclick="openlegalwindow('/Home/SipoLegal/201630252704');" style="cursor:pointer;">无权-未缴年费</div>
// </h2>
//STR;
// 采集规则
$rules = [
// 采集文章标题
'title' => ['.PatentTypeBlock>a','text'],
// 采集文章作者
'author' => ['.rh','text'],
// 采集文章内容
'content' => ['.PatentContentBlock','text','input span:last']
//设置了内容过滤选择器
];
$rt = QueryList::get($url)->rules($rules)->query()->getData();
print_r($rt->all());
}
/*
* Array
(
[0] =Array
(
[title] => 汽车车灯 - 201630252704.8
[author] => 李佳玲
[content] => 发明人:李佳玲...摘要:1.本外观设计产品的名称:汽车车灯。2.本外观设计产品的用途:本外观设计产品用于汽车前照大灯,防散光设计,输出光型更好更聚光,安装简易,即装即用。3.本外观设计产品的设计要点:产品整体的形状。4.最能表明本外观设计设计要点的图片或照片:立体...
)
[1] =Array
(
[title] => 一种LED彩灯 - 201220712237.9
[author] => 李佳玲
[content] => 发明人:张旭霞;李佳玲;马凤军...摘要:本实用新型涉及灯具技术领域,具体涉及一种LED彩灯。它包含灯体(1)、环形彩色反光镜(2)和LED灯板(3);灯体(1)的中心位置设置有环形彩色反光镜(2),环形彩色反光镜(2)外围均匀设置有多个LED灯板(3)。它外形美观,使用效果好,不...
)
[2] = Array
(
[title] => 一种多功能围巾 - 201220712216.7
[author] => 李佳玲
[content] => 发明人:李佳玲;张旭霞;马凤军...摘要:一种多功能围巾,它涉及服饰领域。它由围巾主体(1)、红外按摩装置(2)和别针控制器(3)组成,红外按摩装置(2)均匀设置在围巾主体(1)上贴近脖子的位置,别针控制器(3)设置在围巾主体(1)上的垂带上。它通过别针控制器(3)来控制红外按摩装...
)
* */
}
四、分页搜索采集
使用for循环实现
/*
* 分页搜索信息采集
* */
public function pageSearchCollect(){
for($page=0;$page<100;$page*10){
// http://www2.soopat.com/Home/Result?SearchWord=%E6%9D%8E%E4%BD%B3%E7%8E%B2&FMZL=Y&SYXX=Y&WGZL=Y&FMSQ=Y&PatentIndex=20
$url = 'http://www2.soopat.com/Home/Result?SearchWord=%E6%9D%8E%E4%BD%B3%E7%8E%B2&FMZL=Y&SYXX=Y&WGZL=Y&FMSQ=Y&PatentIndex='.$page;
// 定义采集规则
$rules = [
// 采集文章标题
'title' => ['.PatentTypeBlock>a','text'],
// 采集文章作者
'author' => ['.rh','text'],
// 采集文章内容
'content' => ['.PatentContentBlock','text']
];
$rt = QueryList::get($url)->rules($rules)->query()->getData();
print_r($rt->all());
echo '</br>';
//插入数据库
db('article')->insertAll($rt);
}
}