简易红袖小说网采集及数据展示及静态页面

<?php

namespace App\Http\Controllers;

use App\models\caijiModel;
use Illuminate\Http\Request;
use QL\QueryList;
use function Sodium\compare;

class caijiController extends Controller
{
//
// public function caiji(){
////1,要采集的网址
// $url="https://www.chinanews.com/";
// //2.采集的内容
// $content= file_get_contents($url);
// $caiji=QueryList::html($content);
//// var_dump($content);
//// //3采集的范围
//// $range='#daodu';
//////采集的规则
//// $rules=[
////'title'=>['h1','text'],
//// 'content'=>['']
//// ];
// //定义一个空的数组
// $ji=[];
// $ji[]=$caiji->find('.group')->text();
// $ji[]=$caiji->find('.xwzxdd-dbt')->text();
// var_dump($ji);
//// $res=caijiModel::caiji($ji);
//// var_dump($res);
//
// }




、、、、、、、、、、、、、、、、、、、、、、、、、、、完整版

public function hongyou()
{
$url = "https://www.hongxiu.com/";
$content = file_get_contents($url);
// var_dump($url);
//规则
$range = '.book-info';
$rules = [
'book' => ['h4', 'text'],
'author' => ['i', 'text'],
'img' => ['img', 'src'],
'cate' => ['.author', 'text'],
];
$rules['img'][1] = 'http:' . $rules['img'][1];

$data = QueryList::html($content)
->range($range)
->rules($rules)
->queryData();

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


$img="http:".$v['img']; //获取图片的地址
print_r($img);
die;
$imgs=file_get_contents($img);
$filename='./book/'.md5(time().$k).'.jpg';
file_get_contents($filename,$imgs);
$data[$k]['img']=substr($filename,1);
}


$res = caijiModel::book($data);
if ($res) {
echo "<font color='red'>采集完成</font>";
header('refresh:2,url=/hongyou/list');
} else {
echo "<font color='red'>采集失败</font>";
}
}

//采集完成列表展示
public function list()
{
$data = caijiModel::booklist();
return view('book.booklist', compact('data'));
}

public function index($id)
{
$filename = "./book/.$id" . 'html';
if (file_exists($filename)) {
echo file_get_contents($filename);
} else {
$data = caijiModel::bookindex($id);
$html = view('book.bookindex', compact('data'));
file_put_contents($filename, $data);
return $html;
}
// var_dump($data);

}


}
。。。。。。。。。。。。。。。。。。。。。。。模型页面
<?php

namespace App\models;

use Illuminate\Database\Eloquent\Model;

class caijiModel extends Model
{
//
protected $table='book';
public $primaryKey='id';
public $timestamps=false;
public static function book($data){
return self::insert($data);
}
// 采集后的列表展示
public static function booklist(){
return self::paginate(3);

}
//采集后的详情展示
public static function bookindex($id){
return self::find($id);

}
}

、、、、、、、、、、、、、、、、、、、网页页面

 

 

 。。。。。。。。。。。。。。。。。。。。详情页面

 

。。。。。。。。。。。。。。。。。目录页面

 

 

 




posted @ 2021-08-04 09:47  王越666  阅读(305)  评论(0编辑  收藏  举报