过期域名预定抢注

 找回密碼
 免费注册

從0開始學採集------中級篇之前期準備工作:本機搭建PHP環境

 火... [複製鏈接]
發表於 2014-10-28 16:00:57 | 顯示全部樓層 |閱讀模式
前言:! j: g/ a* u1 B& J
在初級篇介紹了利用火車頭採集內容並發佈到wordpress的過程(帖子地址:http://www.luosuo.net/old/thread-121090-1-1.html),希望對新人能夠有一些幫助。火車頭有它的便利性,上手簡單,基本上研究幾天就可以上手採集了。但由於它畢竟是一款商業軟件,不掏錢買商業版,限制多多,用起來不爽。當然,我沒有用過商業版沒有發言權,也說不定用起來很爽。兩年前用火車頭免費版時感覺由於功能限制很難實現一些稍複雜的功能,果斷放棄,轉投用PHP採集的路線。
% j9 K6 L" ~5 R6 P0 D) Q  Z; S8 M& d
. T8 ]" v$ Y$ K; p; {+ a' |4 j* q! \通過在論壇泡了幾天,也對大家有了一些初步的瞭解,我感覺論壇高手、中層、新人個個層次的人都不在少數,在論壇裡看帖子,既能從高手那裡學習到有用知識提升自己,也看到了很多新人朋友在苦苦學習。我自認為自己處於中下等水平,沒有太多高深的技術分享給大家,只能做一些初級入門教程來幫助有意學習的新人,減少他們苦尋的時間。下面我們開始:* o, h( [# @, [+ r

3 H; N( t) T' `
# a$ t7 ?  g0 U$ j) B+ M
主角:PHP7 ?5 I. q! D# B, k' B8 I
PHP(外文名: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,易於學習,使用廣泛,主要適用於Web開發領域。上面這段話是百度百科關於PHP的定義,實際學習起來也是入門較容易,想學深入也需要付出很大努力,同時能實現很強大的功能。我們使用的wordpress、dedecms、discuz、ecshop等等都是使用PHP開發,所以,除了採集也還是有理由學一學PHP的。9 {7 N" b" _) T" D8 g% z/ |! j  \

+ i. m, h& W6 U3 k/ B, N; T) S

8 \& y8 D4 J% I5 ]9 N那麼既然要學習PHP,首先要搭建好PHP的環境,才能運行代碼。這裡推薦使用環境套件安裝包,不要一開始就去研究在服務器上如何搭建PHP環境,如果這樣只是環境搭建就可能花費你2-3天的時間,作為學習研究一款環境套件就夠用了,如:WampServer、PHPnow、AppServ
( J# W0 w- Q* o# I/ N* H& }; V: L; j) |
' n5 ]+ w& c$ _$ H5 \( D$ Q! |

3 [+ S) X0 X2 @$ w: [! Y* o3 D. U( j5 Y% l7 {, ]

) w* x7 ]$ ^  q' }需要的工具:% Z" ]/ f8 S2 o. @
1.PHPnow
1 ^% j' w( D3 V  N, j2.一款代碼編輯器。如:EditPlus、notepad  R* x( o* R0 n; H! q
  Y  k. B* d6 Z8 @8 X2 y7 P

9 u  C- h7 {. C0 X1 b' c
7 M9 _9 |- z4 r

: z% P) }# a) w5 B. G0 t. E$ s2 m步驟:' u% D5 n* e( ?' `/ t) r
1、安裝PHP環境,以下引用phpnow網站文檔0 E/ L9 P2 x% R1 ]. \1 k9 q$ u
) R, N9 B/ y' d( H
首先從下載 最新版 PHPnow。PHPnow 有兩種封裝,一是 exe 自解壓版(推薦,本文針對此版),二是純 7z 檔案(沒有 exe 自解壓)。7 b! t& B9 d; b2 K" Z  C+ B) Q, R( }1 V

, u9 ]2 x4 o# B( u: c9 A

+ r0 g. _' _0 X/ Y執行 PHPnow-1.4.x.exe 出現下圖所示。回車即可。' w  k0 o+ o$ ~5 C6 y
8 b  T- E3 P5 U

9 A, E1 n: ~3 w/ j
) H- ?8 |# ?( V/ H
圖-1:解壓對話框$ F- H* n/ e. y7 [
' N- C! A7 f! g
0 L0 \  T+ M: m

2 b$ u1 `; B; G+ M; [* F在自動解壓完畢後,將自動執行 Init.cmd 進行初始化動作。如 圖-2 示:1 U3 @/ L0 J; c/ H
期間可能出現防火牆提示,請允許。8 _  \! W$ v" q0 }4 D

7 ^2 P, Z: c5 ]0 q' ?3 a' t$ G
! o- J. e2 u. N; m9 Z- E

" s* f/ h) h3 k! F7 a* D9 t: ?3 I圖-2:Init.cmd 過程
% u% m1 ]* X& `! X6 w

4 Y! R& F! s2 N8 P
3 L- d% W9 f% ]1 d, W7 F( Z; c; i* \4 V0 _/ ~9 [
# [* {8 k3 L4 B! O3 @
圖-3:解除防火牆4 t  e& h1 l' G: n9 D0 e
: O, l4 o3 ~0 D8 I5 y  K

) r6 {2 y$ h; }1 o  V' G' ]" N1 ~$ {1 T4 \% \0 {
Init.cmd 十秒鐘即可完成。全部完成後,將自動打開默認頁。# C9 X& B* U+ ?; t
(如果沒有,試試手動打開 http://127.0.0.1# M) W% }+ ~8 n( M5 a
, q5 ?+ J& s( y! q; Z/ v$ W. X3 \
1 e' t& p% I( v0 V# R
, i: }# i' y  E- K# g
圖-4:搭建成功
6 f& g' P& [; ]" [5 Y
/ ~! j1 x5 g7 N" r5 p- G' v

. e7 Z/ t, ^/ G' F# `/ ^" ?& h% a- I
如果你只想搭建一個網站,上面的環境已經足夠。很都時候我們需要開設多個獨立的網站。例如論壇和主頁分開、和朋友共享服務器等等。這時就要用到 虛擬主機 了。
- v! B* K4 |9 m: `
( R: k9 X; U2 C; E. |$ S7 T' t

# m- P0 T- J5 L; {' z下面說說 PHPnow 虛擬主機的使用。很簡單。0 G% o- H6 g0 j: p) P1 o. X; M

& v1 ~- ]! Z6 a) A' m  Z$ P

6 }2 Z9 y1 ^) M8 L6 j8 a雙擊執行 D:\PHPnow\PnCp.cmd (可能你的安裝路徑不是 D:\PHPnow),輸入 2 後回車。
- W, O" {6 G8 b0 D) M按照提示輸入新建虛擬主機信息。如 圖-5 所示。
4 ]' {5 q/ C, ?
. e9 a' }( c. ]& _" z( F* Z; J: Q# G3 U

  D7 M4 Z1 }# f- I$ ]0 R) P圖-5:開設虛擬主機& h: {8 P- }9 l" H. \9 X

7 |4 {3 _0 V9 h* m' d3 ~, D  M/ h6 K; Z) C$ f

- I# J" u4 K" _3 B輸入完信息回車後,將自動重啟 Apache 以便生效。1 j0 E( J: W( m0 u) M  x8 ~; [6 h
然後訪問剛才添加的域名,注意事先解析好域名指向你的服務器 IP。8 N0 w8 X+ j# S7 S8 w+ o9 k% W- ?
8 _4 v# l5 ~3 P

) D+ b8 o# h) U' ^7 O5 O7 ]* p如果沒有域名或者不會用,可以通過編輯 C:\WINDOWS\system32\drivers\etc\hosts 來使用「虛擬域名」。
+ d% L0 Q+ h% M& P本例中的 bbs.test.com 就是在 「127.0.0.1 localhost」 的下一行添加一行 「127.0.0.1 bbs.test.com」 實現的。
! g: Y1 m. O+ ]3 c( a* p! ?0 ^/ i$ F* E/ Y; s
8 m: D, [4 F+ ], V# _

! |6 \; e! p/ _( d* J9 e- ?圖-6:虛擬主機開設成功8 D) p" x/ r( {* ?: P
  a  S' ^& C; Y$ T4 j# o
0 q/ S  Z; ~0 r
9 Y$ d, i; Q! h" N9 u# U& C) n
可能你還需要為每個虛擬主機分配 MySQL 數據庫,下面介紹下如何使用 phpmyadmin 分配用戶和數據庫。6 u& V% X+ f6 I6 p" j) z

! Z- K; m1 W* D+ |. I! B

* Q6 k6 W( K7 \% _0 X( v& e打開 http://127.1/phpMyAdmin;用 root 登陸。
9 V& j7 K% y3 a% i然後點擊 「權限」再點擊 「添加新用戶」。
- E4 f: d1 J0 W: f) p; Y$ e填寫好新的 用戶名 和 密碼;  y& ], `* y" [5 |
選擇第二項 「Create database with same name and grant all privileges」。
) d1 p* b' y! B4 Y" v其他的保持默認;需要提的是,全局權限可不要選,除非必要,否則全不選。; T5 a" Q5 T0 S4 v
點擊 [執行] 即可完成。難明白就看看圖吧。
3 D1 c6 D0 w: j: m8 m. m* M8 t- @' \" e2 q; ?

$ m& t3 a! M2 ~: L1 n8 M# t" _
; x& S8 X6 G; j5 E; I$ Q3 D) h2 }
圖-7:添加數據庫用戶。
3 m1 g' S* |: ^) m
1 d( o. I8 v8 ?

/ Z8 o- q: y* @  I* D0 Q
" Z# [' L) t* N7 c5 X6 |把剛才添加的用戶名和密碼交給用戶即可。注意 root 擁有最高權限,不要輕易把密碼交給別人。2 w" M4 t" K9 k: a

/ H7 j, L  P" F, t
3 q5 s: ^7 U) A: S0 s# K
好了!你現在擁有了一個專業的 PHP 服務器環境。什麼 Discuz! 6.0、PHPWind、DeDe、PHPCms 全不是問題,馬上開始你的建站旅程。
! S, V3 I5 q2 z! n
* O( X6 X+ N( L( f6 k8 V$ x% K$ N/ ?( w; T5 X- j
2.在代碼編輯器中,寫下你的第一個PHP程序,保存為(任意文件名.php),比如a.php到phpnow目錄下htdocs目錄中。代碼內容為:- @9 e$ q3 _* ]7 W3 q$ q, Z
<?php 4 }1 K9 J& P& ?& W8 H
$url = "http://www.luosuo.net/old/forum.php";// 你要採集的地址
. E+ f, L4 ?0 i( ~3 X0 D$content = file_get_contents($url); //用file_get_contents將網址打開並讀取所打開的頁面的內容   `" i0 i2 ~9 _7 B
echo $content;
+ X6 p% B& m1 s% L?>
! m( |* ?, K  m/ c) V+ ]1 w! K. O

* t  `2 a0 k/ C! X% X) r

. E0 g* b+ G/ E5 r3.在瀏覽器中輸入:http://127.0.0.1/a.php看看結果吧。% S" a. e$ c8 l1 B

3 a  S' K- R6 d8 T  @+ K( m
5 x8 C- x6 y* e) V1 i# W
2 E% z5 ?9 m" ~, |6 ~; q- d. s3 m# e
  L! l: X, l4 Y5 {" Q

評分

參與人數 11點點 +48 收起 理由
ryan2101 + 2
useejack + 1 谢谢分享!
roror999 + 3 谢谢分享!
ebookyx + 2
xx19941215 + 1 鼓勵
月光飞燕 + 30
tkmy + 1
foxconndmd + 1 鼓勵
michaelr + 1 有見地
zengfu + 1 認眞參與
乐乐 + 5 感谢分享

查看全部評分

回復

使用道具 舉報

發表於 2014-10-28 16:19:41 | 顯示全部樓層
很辛苦,鼓勵一下。。。。
/ |+ U# a2 C! J7 ^2 @; O
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-28 16:23:58 | 顯示全部樓層
期待樓主的高級篇  N" U4 B1 {" @* v, O+ M' p( M
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-28 16:28:00 | 顯示全部樓層
不建議使用file_get_contents採集,推薦使用php的curl庫) x9 F6 x. M, v% ]' u( \6 M
6 k6 S- Q- x+ b& x: C+ a
使用file_get_contents函數時,當獲取的$url訪問不了時,會導致頁面漫長的等待,甚至還能導致PHP進程佔用CPU達100%,
+ }1 a3 b  R5 E2 ?/ z: Y# O- L
' x9 U6 l& ~4 x3 F+ H! S使用curl獲取頁面比用file_get_contents穩定的多,快速的多,功能也更加強大
/ @5 C, a7 U5 Q  ^* E
* d2 \/ g  q" ?) {. m包括偽裝ip啊,代理啊之類的,
. Z; _; \% G8 ]) Y+ k# _
$ o2 f8 E# q) Y* R) f3 g相比之下,file_get_contents函數更適合讀取本地文件# C/ M. ^' x4 _
0 ?8 q- D! J4 q* c5 F/ u( c
. Y: L$ ?; d3 c# _. q5 c5 g1 @
引用一下某個測試兩者性能的數據,下面在一個在國外網站上看到的二者的讀取google.com首頁的測試:8 E. o4 o* h% @& ?5 s

3 F% G! F' G8 m% s  NFetching google.com using file_get_contents took (in seconds):
* i2 b5 c1 |6 ^6 D! A/ E " C( o: _& P& n" U" z
2.31319094
9 w0 Y2 y( G1 c7 @" ?  y" J6 i2.30374217: z# Q: Z/ a2 ]5 R) b/ G; u
2.21512604! H' [  r; m! X/ I
3.30553889
0 Y! q4 q' B( K2.30124092+ b. Q: M- A4 G' F; W# S& R
  g: y- T/ a( |) X* r
CURL took:
# f3 p( L% h' w4 N# | ; v5 N3 k2 t- r9 J6 N# A& ?
0.68719101
. a. |5 V  g! z6 F$ ~+ w# |" }- \0.64675593
! r/ u+ E* C1 C( B0 d0.643268 ?- E: h) u5 t' F8 G/ C. Y3 o" @8 d
0.819831136 X9 \; v0 J" m2 k* \8 X
0.63956594
. V) U# i0 ~: p/ q; b6 @/ b7 }9 f7 V/ }+ z' `: y1 Z
高下立判,推薦使用curl0 `' f! b, v$ [9 k1 V
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2014-10-28 16:35:19 | 顯示全部樓層
mulao 發表於 2014-10-28 16:28
# ^0 X  t# \! z1 n7 j5 @不建議使用file_get_contents採集,推薦使用php的curl庫
$ c& H/ t7 d  W: l2 s9 F' k! d' p: w) {" y, D3 R6 I7 p' Q1 k0 h
使用file_get_contents函數時,當獲取的$url訪問 ...

' N  y) K6 @# I6 [9 R) D嗯。是這樣的。只不過是因為開始標題筆誤,弄了個初級篇,讓大家以為會有中級和高級篇。我的計劃是高級篇介紹curl,畢竟除了效率外,curl還可以實現模擬登陸、發送等必須的功能。
$ u4 V9 m4 q( @, M7 @. k, A1 c' O
( C3 p3 `* J# D8 d& b0 bfile_get_contents全當是給讓沒接觸過PHP的人瞭解它的神奇吧,畢竟一句代碼就可以抓取到網頁了,先感興趣再入門吧,curl抓取一個頁面得好幾行代碼,沒接觸過的人可能就看暈了,就放棄學了。& v) @& f3 C0 h/ V# l
+ Y4 [# K) Q' C# E. D

評分

參與人數 1點點 +1 收起 理由
youdy17 + 1 强烈期待

查看全部評分

回復 给力 爆菊

使用道具 舉報

發表於 2014-10-28 16:40:22 | 顯示全部樓層
kevinmy 發表於 2014-10-28 16:35
3 E, j% s* o/ W: H9 G- k嗯。是這樣的。只不過是因為開始標題筆誤,弄了個初級篇,讓大家以為會有中級和高級篇。我的計劃是高級篇 ...
. z! n  j8 s$ U$ g4 Y$ z1 C* [' o
OK8 C( e3 K' G0 B) A+ t3 o/ B
等樓主高級篇            
4 {7 _; f- L) V. R- a; v9 d! [5 I  c1 `# W6 b( _7 ]: @
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-28 16:42:33 | 顯示全部樓層
很辛苦,鼓勵一下。。。。
3 Y9 a5 `' L2 \6 r2 R
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-28 16:46:09 來自手機 | 顯示全部樓層
頂樓主,這篇講的內容我之前瞭解過。樓主教那種圖片站採集的教程嗎         
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-28 16:58:28 | 顯示全部樓層
頂樓主,期待你的高級篇!晚上就實踐下!- X1 f7 f/ u: X8 \7 J
回復 给力 爆菊

使用道具 舉報

發表於 2014-10-28 17:02:53 | 顯示全部樓層
PHP多進程配合異步CURL效率還是不錯滴,更專業點用python。7 @% Z% L7 H( R8 D5 b
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

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

4um點基跨境網編創業社區

GMT+8, 2024-10-30 13:32

By DZ X3.5

小黑屋

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