过期域名预定抢注

 找回密碼
 免费注册

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

 火... [複製鏈接]
發表於 2014-10-30 11:10:59 | 顯示全部樓層
$matches是一個二維數組?                                    ' C' c. k7 v% w& g8 V- \
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 11:20:53 | 顯示全部樓層
xx19941215 發表於 2014-10-30 10:55 3 s& ?0 H4 t* K
$i

8 P7 a* G5 z: w' s你的兩個回帖,理解都是正確的。
1 p1 K  d* Y" b& f
$ g. J2 `/ E2 A$ {! g& l+ F1.count() 函數是計算數組中的單元數目或對像中的屬性個數。用來計算總數。$ v: @  o" H5 F
; z: {- E# c6 o. U
2.$matches是一個二維數組。
: }3 j. G; O5 |0 B7 n/ m  I- F; U: B/ V: u- n( F8 S2 R+ y' f0 B2 j
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 11:49:20 | 顯示全部樓層
kevinmy 發表於 2014-10-30 11:20
* f+ R1 \9 k! r: r( H: K) [& t你的兩個回帖,理解都是正確的。
2 B( I& s9 F6 H. L2 w4 B' k" H' Y! x  r# I( I& E8 g3 X
1.count() 函數是計算數組中的單元數目或對像中的屬性個數。用來計算總 ...

4 H1 z( e+ N2 c# o* `; s保存的為啥是個二維數組呢、?4 i8 o1 y4 w& a) l) H

( Q6 N" V- [7 u3 t* i9 C
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 12:42:21 | 顯示全部樓層
感謝分享                                   & `" y7 |% T! ]6 ^( ]# }
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 13:16:02 | 顯示全部樓層
[mw_shl_code=php,true]<?php   l6 E3 ?/ I$ O$ w8 a
set_time_limit(0);//設置程序執行時間
9 U" j- J& X$ z8 X7 ^( d6 Bheader("Content-Type: text/html; charset= utf-8"); //設置頁面的編碼,不設置會亂碼
8 {3 r5 n8 I2 O$ }& o- o3 t: K5 Z; \( h% [" p
$url="http://www.luosuo.net/old/forum-4-1.html";
. F2 C% N% O/ _* M$ch = curl_init($url);//初始化
9 G! k$ p" |. X) R; L1 v) Mcurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//返回的內容我們是作為變量儲存, 而不輸出,所以這裡選1. ' o7 T; d( a  D1 s* G5 q
$contents = curl_exec($ch);// 運行cURL,請求網頁
' G# o3 m/ h) i8 p& Bpreg_match_all('{<a href="([^"]+)"  target="_blank">(.*)</a>}',$contents,$matches);//正則匹配想要的內容
% i& i6 z. ]* }$ ]% @/ J8 Icurl_close($ch);// 關閉URL請求
7 O) L: p$ c+ }* Pprint_r($matches);
/ O' O' @5 e1 ]. U+ W7 |for ($i=0;$i<count($matches[1]);$i++)//for循環結構很常用,這裡的作用是循環記錄總數的的次數,每次循環中可以任意處理採集到的內容
/ ~4 a6 a; z- s" P9 K/ Q9 ^{
( h! a7 L8 e1 @' V$title = $matches[2][$i];
% A6 C  i7 Z5 ~$geturl = $matches[1][$i]; & Q! p1 T/ d1 q- @7 r' F3 N! |
echo "我要的標題是:" . $title. "<br/>" . "對應的網址是:" . $geturl . "<br/><br/><br/>";
- E8 P2 L0 A+ ?6 K. R}
3 G( w- M$ r5 ], K. a- F?>[/mw_shl_code]
# B, q$ f3 S( ^$ O. ?- ~6 s
2 F+ i4 \) _% d8 a+ N& X; R3 p. d這是我測試的代碼,怎麼出現了這個$ h% b4 `# R( L. ]
2014-10-30_131545.jpg
/ Z* h* |% ?8 H2 L$ j/ p) g5 Q' ~; n* c+ R$ c! @
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 15:11:50 | 顯示全部樓層
xx19941215 發表於 2014-10-30 13:16
6 R& ]$ ~7 V: D9 Y0 l4 R* H6 h% J' U這是我測試的代碼,怎麼出現了這個

5 e  e. C  }) n0 z7 p( I- g8 i& O看了你貼出的代碼,出現上面那大段是因為你自己在代碼中加了一句:print_r($matches);把數組的結構打印出來了,直接在瀏覽器上看會比較亂,你點擊鼠標右鍵選擇查看源代碼,在那裡面數組的結構清晰,你就能看出來,輸出的是個二維數組了。3 d0 Q/ e1 A+ u

/ K" K% @  Y6 S* j" ^
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 16:09:37 | 顯示全部樓層
kevinmy 發表於 2014-10-30 15:11 * Z: M$ Q7 K7 d4 p. S2 p6 Y/ c
看了你貼出的代碼,出現上面那大段是因為你自己在代碼中加了一句:print_r($matches);把數組的結構打印出 ...
7 @$ |5 e% r, `% S/ v
那您幫忙看看這個http://ygcf.sinaapp.com/ceshi.php
- D5 L8 _) q1 p5 G( C/ o+ g; B. _0 @- {7 x; E0 m6 Y* _
怎麼用for打印出像表格那樣的格式呢?
, S# d1 `* V% T9 X5 B+ F6 I$ A/ R: V7 A
! H$ y: }. v. h* z  V4 A+ k
1 f& p" J+ \5 L
! G% u  p: _( A; Z" b  g
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 16:58:45 | 顯示全部樓層
目前為止還只停留在火車頭的階段,樓主高手啊
, j! `3 S: S3 a1 _( ]
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-30 17:30:13 | 顯示全部樓層
會寫代碼的話就很簡單啦" ]) r$ v4 |, Q8 ]
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-30 20:29:46 | 顯示全部樓層
xx19941215 發表於 2014-10-30 16:09 4 m/ D* ^: t! ]1 Y5 W! w, z
那您幫忙看看這個http://ygcf.sinaapp.com/ceshi.php 3 v; B. Y2 l, O3 p: X

9 f  q4 a+ Y% `! Q7 _" J怎麼用for打印出像表格那樣的格式呢?
* `6 F1 Z/ [4 z
給你個思路,用div+css可以實現,如果暫時不會,也可以先使用HTML的<table> 標籤來實現功能。5 {( ?. u+ L( s: m& z2 i% X! P
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

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

點基

GMT+8, 2026-3-20 21:32

By DZ X3.5

小黑屋

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