通常情況下我們會先採集列表頁,然後再迴圈採集列表中的每篇文章,採集列表需要用到range()函式來配合rules()函式。
如圖我們要採集it之家的文章列表,我標記了不同的顏色來分解頁面元素:
use
ql\querylist
;$url
='';$rules=[
'title'
=>
['h2>a'
,'text'],
// 採集文章標題
'link'
=>
['h2>a'
,'href'],
// 採集鏈結
'img'
=>
['.list_thumbnail>img'
,'src'],
// 採集縮圖
'desc'
=>
['.memo'
,'text'
]// 採集文件簡介];
// 元資料採集規則
$range
='.content li'
;// 切片選擇器
$rt= querylist:
:get
($url)-
>
rules
($rules)-
>
range
($range)-
>
query()
->
getdata()
;print_r
($rt
->
all())
;
array
( [0]
=>
array ([title]
=>
[link]
=>
[img]
=>
[desc]
=>)[
1]=>
array
([title]
=> 快訊:ios版qq大面積閃退(網友反映已恢復)
=> ios版qq大面積閃退,原因未知。目前根據it之家的網友反映,目前ios版本的qq已經恢復,但是近期的訊息記錄已經消失
)[2]=
>
array
([title]
=> 阿里影業公布截至近15個月業績:營收33億元,增幅130
=> 阿里影業集團公布截至2023年3月31日的十五個月財務業績:報告期內公司營業收入達到33.03億元,較上一年同期十五個月的14.32億元,增長幅度超130%)
// ....
)
資料是採集回來了,但我們發現有一點瑕疵,結果裡面有一條結果是空的,且文章縮圖鏈結不正確。
如圖我們再次分析頁面可以得知,第一條切片區域是廣告,所以採集的第一條結果為空;而文章列表的縮圖使用了懶載入,所以的真正鏈結在img的data-original屬性上,修正後的**如下:
use
ql\querylist
;$url
='';$rules=[
'title'
=>
['h2>a'
,'text'],
// 採集文章標題
'link'
=>
['h2>a'
,'href'],
// 採集鏈結
'img'
=>
['.list_thumbnail>img'
,'data-original'],
// 採集該頁的鏈結屬性
'desc'
=>
['.memo'
,'text'
]// 採集文件簡介];
// 元資料採集規則
$range
='.content li:gt(0)'
;// 切片選擇器,跳過第一條廣告
$rt= querylist:
:get
($url)-
>
rules
($rules
) -
>
range
($range)-
>
query()
->
getdata()
;print_r
($rt
->
all())
;
array([
0]=>
array
([title]
=> 快訊:ios版qq大面積閃退(網友反映已恢復)
=> ios版qq大面積閃退,原因未知。目前根據it之家的網友反映,目前ios版本的qq已經恢復,但是近期的訊息記錄已經消失
)[1]=
>
array
([title]
=> 阿里影業公布截至近15個月業績:營收33億元,增幅130
=> 阿里影業集團公布截至2023年3月31日的十五個月財務業績:報告期內公司營業收入達到33.03億元
)// ....
)
就這樣採集到了it之家的文章列表以及文章內容 4 列表與元組
元組 乙個元組由幾個被逗號隔開的值組成 t 122324 3643 dgfv print t 0 122324 print t 122324,3643,dgfv u t,1 2,3 3print u 122324,3643,dgfv 1,2,3 3 注 乙個特殊的問題是構造包含0個或1個元素的元組 ...
python學習4 列表
在python中,用 來表示列表,並用 來分隔其中的元素。如 friend zyh pzy pzj hlh print friend 顯示結果 列表的索引從0開始,根據這種計數方式,我們可以訪問列表中的任意元素 增加列表中元素的方法分為2種,一為新增,二為插入 friend zyh pzy pzj ...
No 4列表 元組
列表 元組字典 集合計算機基礎 windows mac直譯器 編譯器 軟體 應用程式 環境的安裝 開發工具ide pycharm 語法直譯器路徑 hellow.py usr bin env python print 你好 linux系統應用 編碼 usr bin env python coding ...