国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

php抓取第三方網(wǎng)站的小說內(nèi)容

發(fā)表日期:2023-02-01 20:20:18   作者來源:劉紅旺   瀏覽:1291   標(biāo)簽:php網(wǎng)站建設(shè)    
這里用到  QueryList這個(gè)第三方插件,安裝要求
php>=7.1
composer  安裝
 
composer require jaeger/querylist
 
 
或者直接下載
開箱即用:https://pan.baidu.com/s/1QPMUalL5HcVJ4L7zUY0LMg
require_once  app()->getRootPath()."extend/queryList/autoload.php";// 引入插件
$QueryList=new \QL\QueryList();
$url ='xxxxxxxxxxxxxxxxxxx';//需要獲取小說的鏈接
$rt = [];
//根據(jù)頁面獲取書籍信息
$rules = [
     'title' => ['.t>a','text'], // 獲取小說名稱
     'link' => ['.n>a','href'], // 獲取小說的鏈接
     'author' => ['.author>a','text'], //獲取小說的作者
     'status' => ['.abover>span','text'], //獲取小說的狀態(tài)
     ];
       
$range = '.ul_m_list li';  // 切片選擇器
         //encoding('UTF-8','GB2312') 轉(zhuǎn)碼
$rt = $QueryList->get($url)->rules($rules)->range($range)->removeHead()->encoding('UTF-8','GB2312')->query()->getData();
        dump($rt->all());exit;
 
根據(jù)網(wǎng)站的機(jī)構(gòu)去獲取書籍內(nèi)容,比如這個(gè)網(wǎng)站

網(wǎng)站

書名是在class   .t>a 下面的 ,鏈接是在class   .n>a 下面的
 
range :切片選擇工具    就是書籍循環(huán)的外包結(jié)構(gòu) 可以將書籍分割成一個(gè)一個(gè)的數(shù)組
remove:可以將內(nèi)容中的部分內(nèi)容過濾掉
$html =<<<STR
    <div id="content">
 
        <span class="tt">作者:xxx</span>
 
        這是正文內(nèi)容段落1.....
 
        <span>這是正文內(nèi)容段落2</span>
 
        <p>這是正文內(nèi)容段落3......</p>
 
        <span>這是廣告</span>
        <p>這是版權(quán)聲明!</p>
    </div>
STR;
 
$rules = [
    'content' => ['#content','html']
];
 
$rt = QueryList::rules($rules)
    ->html($html)
    ->query()
    ->getData(function($item){
        $ql = QueryList::html($item['content']);
        $ql->find('.tt,span:last,p:last')->remove();
        $item['content'] = $ql->find('')->html();
        return $item;
});
Array
(
    [0] => Array
        (
            [content] => 這是正文內(nèi)容段落1.....
 
        <span>這是正文內(nèi)容段落2</span>
 
        <p>這是正文內(nèi)容段落3......</p>
        )
 
)
 
 
 
print_r($rt->all());
 
$rt->find('.tt,span:last,p:last')->remove();
 
encoding:作用于內(nèi)容的轉(zhuǎn)碼,原來的網(wǎng)站'GB2312' 獲取的內(nèi)容會(huì)出現(xiàn)亂碼,需要將他轉(zhuǎn)換成‘utf-8‘。

網(wǎng)站2

$html =<<<STR
<div>
    <p>這是內(nèi)容</p>
</div>
STR;
$rule = [
    'content' => ['div>p:last','text']
];
$data = QueryList::html($html)->rules($rule)
                ->encoding('UTF-8','GB2312')->query()->getData();
 
設(shè)置輸入輸出編碼,并移除html頭部
如果設(shè)置輸入輸出參數(shù)仍然無法解決亂碼,那就使用 removeHead()方法移除html頭部
 
removeHead:過濾掉頭部
 
這樣我們就將這個(gè)頁面的書籍列表都獲取下來

數(shù)據(jù)

數(shù)據(jù)2

 
 
 
讓后通過循環(huán)去獲取分頁的數(shù)據(jù),根據(jù)書籍鏈接獲取書籍的章節(jié),封面等其他數(shù)據(jù),最后通過章節(jié)鏈接獲取到小說內(nèi)容。
                          
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://pdcharm.com/news/6663.html
宁乡县| 许昌市| 德化县| 玛纳斯县| 周口市| 宁都县| 阿合奇县| 渭源县| 英德市| 拜城县| 岳西县| 醴陵市| 潼关县| 开封县| 凤山市| 遂川县| 垫江县| 南召县| 平顶山市| 九龙县| 南召县| 新余市| 常山县| 长兴县| 石台县| 壶关县| 新巴尔虎左旗| 上饶市| 京山县| 古田县| 仪征市| 富锦市| 察隅县| 潜江市| 黄骅市| 色达县| 福清市| 麻栗坡县| 定西市| 阿鲁科尔沁旗| 慈溪市|