近日前辈给我安排了一个任务,让我爬取搜狗微信上公众号的文章,楼主以前用过Python爬取数据,没有使用过PHP用来爬取数据,于是研究了一波,一开始使用的是PHP Simple Html来解析节点元素,查看了官方文档,感觉和css选择器差不多,但是经过了一上午的查找又发现了一个神器, QueryList 发现这个更简单粗暴,楼主使用的laravel 5.6框架 首先需要composer 安装一下QueryList包直接到 在终端上 composer require jaeger/querylist 然后引入 use QL\QueryList; 直接上代码
<?php
namespace App\Http\Model;
use GuzzleHttp\Client;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use QL\QueryList;
class Index extends Model
{
//
public function getArticle($url){
//正则匹配主机地址
preg_match('@^(?:https://)?([^/]+)@i', $url, $matches);
$base_url = $matches[0];
//截取参数部分
$prams_url = strrchr($url,'/s?');
//实例化请求类
$client = new Client(['base_uri' =>$base_url]);
$result = $client->request('get',$prams_url , [
'headers' => [
"Proxy-Connection" => "keep-alive",
"Pragma" => "no-cache",
"Cache-Control" => "no-cache",
"User-Agent" =>