过期域名预定抢注

 找回密碼
 免费注册

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

 火... [複製鏈接]
發表於 2014-10-30 11:10:59 | 顯示全部樓層
$matches是一個二維數組?                                    ( [, t1 m% B6 ?
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 11:20:53 | 顯示全部樓層
xx19941215 發表於 2014-10-30 10:55 7 q1 [( x- m+ c$ b  ~$ e
$i
: M% `4 `$ K4 P" {8 d  g
你的兩個回帖,理解都是正確的。! d$ l5 Z; r; W; L. n2 q: F3 G" ]
( Y( _8 G* j4 `$ h; x  q
1.count() 函數是計算數組中的單元數目或對像中的屬性個數。用來計算總數。0 t7 q* M- Q( y5 s5 L! ?4 u4 v
# P4 E, D9 T5 B3 B) T2 A8 s. w
2.$matches是一個二維數組。" b+ f9 Z! w. b- f) y8 {% Y
1 }" x6 ~2 E% N% g  z
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 11:49:20 | 顯示全部樓層
kevinmy 發表於 2014-10-30 11:20
& T% t& m3 _3 P" I你的兩個回帖,理解都是正確的。
$ ?& B8 z5 Y0 Y$ _* y- J% l5 n" Q, S1 F3 f
1.count() 函數是計算數組中的單元數目或對像中的屬性個數。用來計算總 ...
' P3 z! y9 ~+ [
保存的為啥是個二維數組呢、?
5 x, |  C; e- T) g! O8 P+ I) V3 s- Q! R1 j
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 12:42:21 | 顯示全部樓層
感謝分享                                   * t4 b- y, c. B7 p' T
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 13:16:02 | 顯示全部樓層
[mw_shl_code=php,true]<?php 8 t1 d  O0 ~6 n2 A4 M7 c1 B
set_time_limit(0);//設置程序執行時間
5 }% T/ L$ L7 J" q/ S/ vheader("Content-Type: text/html; charset= utf-8"); //設置頁面的編碼,不設置會亂碼 7 ?  M) e& X) @: V3 ?9 n
- E$ E4 z5 o9 B+ r; r
$url="http://www.luosuo.net/old/forum-4-1.html";
; a, \( I% a  m  y8 e/ C. I- B* w$ch = curl_init($url);//初始化
* f6 q1 t( j, i# ]# O# A5 ^5 O8 C: ecurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//返回的內容我們是作為變量儲存, 而不輸出,所以這裡選1.
' m9 d! S  [. w8 }' B$contents = curl_exec($ch);// 運行cURL,請求網頁
. p* ^8 F1 b6 D% |preg_match_all('{<a href="([^"]+)"  target="_blank">(.*)</a>}',$contents,$matches);//正則匹配想要的內容 : r- s9 ]( A/ u" d4 l2 O
curl_close($ch);// 關閉URL請求 4 W) X4 I) W2 l! E( ]& F
print_r($matches);
( Q0 q: V) W+ x; lfor ($i=0;$i<count($matches[1]);$i++)//for循環結構很常用,這裡的作用是循環記錄總數的的次數,每次循環中可以任意處理採集到的內容
' ]. l9 l7 o& N6 X3 a/ L* G6 K) x{
7 j% Y7 ?1 f$ w/ ^$title = $matches[2][$i]; " W4 n) P7 g9 H5 G1 M/ z2 ~; b- j
$geturl = $matches[1][$i];
6 H5 y& p2 e, E( M: I2 b& `  Decho "我要的標題是:" . $title. "<br/>" . "對應的網址是:" . $geturl . "<br/><br/><br/>";   o9 A) ^5 P& {( i. I# M! B& o
} 6 |# F/ U5 Z4 J+ N  Z1 C! n  x+ A
?>[/mw_shl_code]) g. c2 ]5 b+ @+ E
' ]8 r0 i9 A/ ]: H
這是我測試的代碼,怎麼出現了這個* S) ?; e% j* v/ a, O; o- Q/ d
2014-10-30_131545.jpg
2 u! X, @) {, e. i
. p- ~8 r5 U2 n; `' N
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 15:11:50 | 顯示全部樓層
xx19941215 發表於 2014-10-30 13:16   s5 X/ \- B7 X
這是我測試的代碼,怎麼出現了這個
# l- c$ K$ G6 d4 [1 L
看了你貼出的代碼,出現上面那大段是因為你自己在代碼中加了一句:print_r($matches);把數組的結構打印出來了,直接在瀏覽器上看會比較亂,你點擊鼠標右鍵選擇查看源代碼,在那裡面數組的結構清晰,你就能看出來,輸出的是個二維數組了。9 h' u8 X: m6 A' A) @1 ?
9 ~& y" ^0 w( |
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 16:09:37 | 顯示全部樓層
kevinmy 發表於 2014-10-30 15:11 + J" b3 n4 N! Y" v/ l
看了你貼出的代碼,出現上面那大段是因為你自己在代碼中加了一句:print_r($matches);把數組的結構打印出 ...
* J: T4 z6 s5 T" [/ Q! g
那您幫忙看看這個http://ygcf.sinaapp.com/ceshi.php * o1 ~/ n% j& q- a' F: A& X

% K) h3 `) y: z  q怎麼用for打印出像表格那樣的格式呢?$ u1 o( m( X: L0 s6 l" R
/ F7 V/ l5 J9 f

* i. H- r: R2 u- M1 u& R& h+ M" C4 ?' W$ i: F" \1 \

' R, K' j1 u; A1 K8 H" `$ y
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 16:58:45 | 顯示全部樓層
目前為止還只停留在火車頭的階段,樓主高手啊. |: w3 H$ c. ~
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 17:30:13 | 顯示全部樓層
會寫代碼的話就很簡單啦
0 r2 j4 u; P+ m; p3 U+ ^
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 20:29:46 | 顯示全部樓層
xx19941215 發表於 2014-10-30 16:09 ! `( Z) k; C# T4 `$ l+ u% n
那您幫忙看看這個http://ygcf.sinaapp.com/ceshi.php 0 ]; N0 n& j& w; z
: G% c) y- X) O) g( g5 @& i8 A, J: R
怎麼用for打印出像表格那樣的格式呢?

* Y* [; S' ?( I9 d) I給你個思路,用div+css可以實現,如果暫時不會,也可以先使用HTML的<table> 標籤來實現功能。. s/ Z0 V) I$ V0 w' ?: r
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

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

點基

GMT+8, 2026-6-19 02:13

By DZ X3.5

小黑屋

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