日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php定时爬虫,thinkphp5使用workerman定时器定时爬取站点内容的代码

發布時間:2025/4/16 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php定时爬虫,thinkphp5使用workerman定时器定时爬取站点内容的代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章給大家分享的內容是關于thinkphp5使用workerman定時器定時爬取某站點新聞資訊等的內容,內容很詳細,有需要的朋友可以參考一下,希望可以幫助到你們.

1、首先通過 composer 安裝workerman,在thinkphp5完全開發手冊的擴展-》coposer包-》workerman有詳細說明:#在項目根目錄執行以下指令

composer require topthink/think-worker

2.在項目根目錄創建服務啟動文件 server.php:<?php

define('APP_PATH', __DIR__ . '/application/');

define("BIND_MODULE", "server/Worker");

// 加載框架引導文件

require __DIR__ . '/thinkphp/start.php';

3、在application里創建server模塊,并在server里創建控制器 Worker.php:<?php

namespace app\server\controller;

use think\worker\Server;

class Worker extends Server

{

public function onWorkerStart($work)

{

$handle=new Collection();

$handle->add_timer();

}

}

4.創建Collection.php類<?php

namespace app\server\controller;

use app\common\model\ArticleModel;

use think\Controller;

use Workerman\Lib\Timer;

class Collection extends Controller{

public function __construct(){

parent::__construct();

}

public function add_timer(){

Timer::add(10, array($this, 'index'), array(), true);//時間間隔過小,運行會崩潰

}

/**

* 采集數據

*/

public function index(){

$total=$this->get_jinse();

return json(['msg'=>"此次采集數據共 $total 條。",'total'=>$total]);

}

/**

* 獲取金色財經資訊

*/

public function get_jinse(){

$url="https://api.jinse.com/v4/live/list?limit=20";

$data=$this->get_curl($url);

$data=json_decode($data);

$data=$data->list[0]->lives;

$validate=validate('Article');

$items=[];

foreach ($data as $k=>$v){

preg_match('/【(.+?)】(.+)/u',$v->content,$content);

if(!@$content[2]){

continue;

}

$list=array(

'source_id'=>$v->id,

'source'=>'金色財經',

'title'=>trim(preg_replace('/.*\|/','',$content[1])),

'content'=>$content[2],

);

if($validate->check($list)){

$items[]=$list;

}

}

if($items){

krsort($items);

$model=new ArticleModel();

$model->saveAll($items);

}

return count($items);

}

public function get_curl($url){

$ch=curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_HEADER,0);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

$output = curl_exec($ch);

if($output === FALSE ){

echo "CURL Error:".curl_error($ch);

}

curl_close($ch);

// 4. 釋放curl句柄

return $output;

}

}

5、啟動服務 php server.php start

相關推薦:

總結

以上是生活随笔為你收集整理的php定时爬虫,thinkphp5使用workerman定时器定时爬取站点内容的代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。