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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

querylist V4 列表采集

發(fā)布時(shí)間:2023/12/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 querylist V4 列表采集 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通常情況下我們會先采集列表頁,然后再循環(huán)采集列表中的每篇文章,采集列表需要用到range()函數(shù)來配合rules()函數(shù)。

如圖我們要采集IT之家的文章列表,我標(biāo)記了不同的顏色來分解頁面元素:

藍(lán)色區(qū)域:我們要采集的整個(gè)列表
紅色區(qū)域:列表中的每一條文章
黃色區(qū)域:我們要采集的每條文章的元信息,標(biāo)題、文章鏈接、簡介以及縮略圖
首先要分析出紅色區(qū)域的選擇器,我們稱之為切片選擇器或范圍選擇器,也就是range 。如圖,利用瀏覽器的開發(fā)者工具可以很容易分析出切片選擇器為:.ulcl>li,然后我們需要在這每個(gè)切片區(qū)域中去采集文章的標(biāo)題、文章鏈接、簡介以及縮略圖,利用同樣的方式分析出每個(gè)元素的選擇器,這里不再贅述,最終列表采集代碼為:

采集代碼:

use QL\QueryList; $url = 'https://it.ithome.com/ityejie/'; $rules = [ ? 'title' => ['h2>a','text'],// 采集文章標(biāo)題 ? 'link' => ['h2>a','href'],// 采集鏈接 ? 'img' => ['.list_thumbnail>img','src'],// 采集縮略圖 ? 'desc' => ['.memo','text']// 采集文檔簡介 ];// 元數(shù)據(jù)采集規(guī)則 $range = '.content li';// 切片選擇器 $rt = QueryList::get($url)->rules($rules)->range($range)->query()->getData(); print_r($rt->all());

采集結(jié)果:

Array( ? [0] => Array? (?[title] => [link] => [img] => [desc] => )[1] => Array ([title] => 快訊:iOS版QQ大面積閃退(網(wǎng)友反映已恢復(fù))[link] => https://www.ithome.com/html/it/358734.htm[img] => //img.ithome.com/images/v2/grey.gif[desc] => iOS版QQ大面積閃退,原因未知。目前根據(jù)IT之家的網(wǎng)友反映,目前iOS版本的QQ已經(jīng)恢復(fù),但是近期的消息記錄已經(jīng)消失)[2] => Array ([title] => 阿里影業(yè)公布截至近15個(gè)月業(yè)績:營收33億元,增幅130%[link] => https://www.ithome.com/html/it/358728.htm[img] => //img.ithome.com/images/v2/grey.gif[desc] => 阿里影業(yè)集團(tuán)公布截至2018331日的十五個(gè)月財(cái)務(wù)業(yè)績:報(bào)告期內(nèi)公司營業(yè)收入達(dá)到33.03億元,較上一年同期十五個(gè)月的14.32億元,增長幅度超130%)// ....

數(shù)據(jù)是采集回來了,但我們發(fā)現(xiàn)有一點(diǎn)瑕疵,結(jié)果里面有一條結(jié)果是空的,且文章縮略圖鏈接不正確。

如圖我們再次分析頁面可以得知,第一條切片區(qū)域是廣告,所以采集的第一條結(jié)果為空;而文章列表的縮略圖使用了懶加載,所以圖片的真正鏈接在img的data-original屬性上,修正后的代碼如下:

采集代碼:

use QL\QueryList; $url = 'https://it.ithome.com/ityejie/'; $rules = [ ? 'title' => ['h2>a','text'],// 采集文章標(biāo)題 ? 'link' => ['h2>a','href'],// 采集鏈接 ? 'img' => ['.list_thumbnail>img','data-original'],// 采集該頁的圖片鏈接屬性 ? 'desc' => ['.memo','text']// 采集文檔簡介 ];// 元數(shù)據(jù)采集規(guī)則 $range = '.content li:gt(0)';// 切片選擇器,跳過第一條廣告 $rt = QueryList::get($url)->rules($rules)? ->range($range)->query()->getData(); print_r($rt->all());

采集結(jié)果:

Array([0] => Array ([title] => 快訊:iOS版QQ大面積閃退(網(wǎng)友反映已恢復(fù))[link] => https://www.ithome.com/html/it/358734.htm[img] => //img.ithome.com/newsuploadfiles/thumbnail/2018/5/358734_240.jpg[desc] => iOS版QQ大面積閃退,原因未知。目前根據(jù)IT之家的網(wǎng)友反映,目前iOS版本的QQ已經(jīng)恢復(fù),但是近期的消息記錄已經(jīng)消失)[1] => Array ([title] => 阿里影業(yè)公布截至近15個(gè)月業(yè)績:營收33億元,增幅130%[link] => https://www.ithome.com/html/it/358728.htm[img] => //img.ithome.com/newsuploadfiles/thumbnail/2018/5/358728_240.jpg[desc] => 阿里影業(yè)集團(tuán)公布截至2018331日的十五個(gè)月財(cái)務(wù)業(yè)績:報(bào)告期內(nèi)公司營業(yè)收入達(dá)到33.03億元)// .... )

就這樣采集到了IT之家的文章列表以及文章內(nèi)容

總結(jié)

以上是生活随笔為你收集整理的querylist V4 列表采集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。