过期域名预定抢注

 找回密碼
 免费注册

從0開始學採集------中級篇:使用Curl抓取網頁內容

 火... [複製鏈接]
發表於 2014-10-30 11:10:59 | 顯示全部樓層
$matches是一個二維數組?                                    6 c) _/ O; \1 _9 C3 N, u2 V) G
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 11:20:53 | 顯示全部樓層
xx19941215 發表於 2014-10-30 10:55
- d; n* `- l5 L/ Q0 }5 N: P2 @; `$i

) w' q; s6 V4 m7 T; \7 I/ U你的兩個回帖,理解都是正確的。. \8 h# X5 E; d/ N' H( \

( r. T$ Q. h3 x5 z2 w1.count() 函數是計算數組中的單元數目或對像中的屬性個數。用來計算總數。9 p# s8 z9 F9 V. Z5 K: [

7 L2 U% }, c3 X' K7 g& X9 V& R2.$matches是一個二維數組。: T2 A4 P6 X) I. f) s( d

# U; K+ z- n$ K# E4 F
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 11:49:20 | 顯示全部樓層
kevinmy 發表於 2014-10-30 11:20 + s6 g' p5 `% C0 A
你的兩個回帖,理解都是正確的。
, h3 P$ s5 A, U1 L. ?
% @1 n$ Y4 b6 G0 l, T/ Z; W; D1.count() 函數是計算數組中的單元數目或對像中的屬性個數。用來計算總 ...
0 `1 o, }9 C! ]9 J$ c
保存的為啥是個二維數組呢、?
# l7 ]) g, _( E+ n9 L1 N+ A" i8 ~0 C" o8 V. a: A
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 12:42:21 | 顯示全部樓層
感謝分享                                   
; u- N9 V) X% Z8 }9 i1 k1 p
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 13:16:02 | 顯示全部樓層
[mw_shl_code=php,true]<?php 1 e9 s5 @% F. J4 Q- d  \% ]8 }
set_time_limit(0);//設置程序執行時間
2 e, W! W. s8 |header("Content-Type: text/html; charset= utf-8"); //設置頁面的編碼,不設置會亂碼 , S) U( Y! @$ x4 o# ?8 b' I

% @! |/ \4 l4 |* e$url="http://www.luosuo.net/old/forum-4-1.html";
3 j+ ^6 K0 D- r3 A! h$ch = curl_init($url);//初始化 % a$ d& e0 W/ x* m; G
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//返回的內容我們是作為變量儲存, 而不輸出,所以這裡選1.
- g  V2 b' A  [1 M/ D$contents = curl_exec($ch);// 運行cURL,請求網頁
7 N$ T; G- e6 I) Q  apreg_match_all('{<a href="([^"]+)"  target="_blank">(.*)</a>}',$contents,$matches);//正則匹配想要的內容 , F7 P* a  [$ v+ B7 ]1 ]  u
curl_close($ch);// 關閉URL請求 ; @3 G4 T7 V- Y7 p6 `$ n) O
print_r($matches);  I& h, z" J/ s
for ($i=0;$i<count($matches[1]);$i++)//for循環結構很常用,這裡的作用是循環記錄總數的的次數,每次循環中可以任意處理採集到的內容
1 N2 q) U) ?: c# l; V. A{
( p7 ^' l' G% o# K" {6 ?$title = $matches[2][$i]; / O& O6 @+ x# M- I0 D2 w& c& N
$geturl = $matches[1][$i]; # |0 C" s' t9 J2 T5 z3 I% \
echo "我要的標題是:" . $title. "<br/>" . "對應的網址是:" . $geturl . "<br/><br/><br/>";
1 O2 c+ A# c' ?& S. J7 K8 s+ _} ( v# G: {! K& q& ~
?>[/mw_shl_code]8 y# r' f, }# ]
5 }; z0 r7 }' c; I; n( n9 A
這是我測試的代碼,怎麼出現了這個* L/ P% B. J6 v. `
2014-10-30_131545.jpg # X5 z' z  g# V9 j7 `/ t) x
  q5 j1 G% D+ h; i9 m/ b, j/ n1 i
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 15:11:50 | 顯示全部樓層
xx19941215 發表於 2014-10-30 13:16 % {7 ?& [3 U. s2 q! C( l
這是我測試的代碼,怎麼出現了這個

) Y8 M9 z( `% O4 I( }2 ?看了你貼出的代碼,出現上面那大段是因為你自己在代碼中加了一句:print_r($matches);把數組的結構打印出來了,直接在瀏覽器上看會比較亂,你點擊鼠標右鍵選擇查看源代碼,在那裡面數組的結構清晰,你就能看出來,輸出的是個二維數組了。
+ |) s7 M3 G5 Z( k) Y
! `( n9 E; N1 o6 i& `  B- l' z
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 16:09:37 | 顯示全部樓層
kevinmy 發表於 2014-10-30 15:11
7 N1 M6 B1 A) D* q7 ]% B9 r- A看了你貼出的代碼,出現上面那大段是因為你自己在代碼中加了一句:print_r($matches);把數組的結構打印出 ...
; v  _/ O8 J2 z# s
那您幫忙看看這個http://ygcf.sinaapp.com/ceshi.php
0 f8 G. ~% z9 H- {* f0 `+ S, B$ Q4 R( _1 _1 u9 k1 D6 Z: J
怎麼用for打印出像表格那樣的格式呢?6 G) k/ ^6 M6 M5 _
5 S; V: c% h; _0 m$ n, j* ]1 G

: B1 Y! E' T! a# J/ [0 R1 V8 \: W8 V( {6 a2 }
" h' U7 y" _& F3 c) K
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 16:58:45 | 顯示全部樓層
目前為止還只停留在火車頭的階段,樓主高手啊
* t9 G' S$ k" j
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 17:30:13 | 顯示全部樓層
會寫代碼的話就很簡單啦, f$ Y0 R: Y0 H" Y
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 20:29:46 | 顯示全部樓層
xx19941215 發表於 2014-10-30 16:09 . y2 n. }$ r8 v: j% ?: ~7 D1 w6 r" ^
那您幫忙看看這個http://ygcf.sinaapp.com/ceshi.php
; O( b/ e. U* }* ~' g
+ H, G& X. x& \怎麼用for打印出像表格那樣的格式呢?
2 C1 d, C- k0 |: o! ~/ ]5 ?3 @& d
給你個思路,用div+css可以實現,如果暫時不會,也可以先使用HTML的<table> 標籤來實現功能。2 f) v( e' y. f3 c
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

过期高净值品牌域名预定抢注

QQ|小黑屋|點基

GMT+8, 2026-11-4 09:45

DZ支援

數位遊牧BBS

快速回復 返回頂部 返回列表