Home 生活分享與心得好書推薦 「網路機器人、網路蜘蛛與網路爬蟲 PHP/CURL程式設計指南」讀後心得

「網路機器人、網路蜘蛛與網路爬蟲 PHP/CURL程式設計指南」讀後心得

by 唐先生
Published: Updated:

一輩子餓不死的技能

我們一生中會學習到許多的事,有些學了之後,一輩子沒機會用,但有些卻受用無窮,網路上有個笑話是這樣的,有個爸爸,很認真的在跟自己的兒子說:「我現在要教你一個技能,只要學到之後,這輩子就不會餓死 !!」你猜是什麼?想不到吧!,其實是「吃飯」…

如果要我說,我所學到的電腦技能中,最划算、最受用的是什麼?

中英打

首先,「中、英文打字」是最受用的,我在高職的時候,那時自己用土法練鋼的方式,說出來你可能會笑,我就是在DOS的環境中,一直的打a~z,也不曉得打幾百還是幾千次,就這樣,就讓我把每個英文字的位置給記了下來,不過在一開始時,有個小缺點,就是我每次要打某一個英文字時,我都要從A開始模擬,直到那個想要到的英文字時,才能推算出位置,例如,我想要打「h」時,我就要先在心中,先把「abcedfg」打完後,才會知道「h」鍵的位置。

curl-2.png

而有了英文打字的基礎後,我想要開始學中打,一開始時我選擇「倉頡」,不過一直學不起來,原因除了要背字碼之外,還要再記一次鍵盤上倉頡字根的位置,一想到記英文鍵位置痛苦的過程,我直接就放棄學倉頡而改學無蝦米,我就這樣買了一本「嘸蝦米輸入法-教學書」,搭配已經有的英打基礎,把中打也學了起來,直到現在,雖然現在「觸碰裝置」大行其道,但中英打仍然有它的必要性。

嘸蝦米輸入法

寫程式

而第二受用無窮的技能,就是「寫程式」。

但寫程式不像打字,可以在幾個月的時間就學透,實際上,可能永遠學不完,所以只要學了一些簡單的基礎,就可以開始用了,接來下就是經驗的累積了。

寫程式除了可以解決問題之外,最重要的是程式本身,可以幫助我們做一些「重覆性」極高的工作,所以會寫程式的人,多半能很有效率將工作在很快的時間內完成。以我來說,有些時候我很沒耐性,尤其是不喜歡做「重覆」的工作,所以我都會想辦法將這些工作,利用「程式」來完成,這樣我只要辛苦一段時間,將這個程式完成,日後我就可以不用再做這些重覆性且又枯燥的工作,所以說我很懶,我也承認,我喜歡腦袋每天放空,最好是都不用做事情,就可以領薪水。

而且,寫程式是一通百通,今天你會寫C,經過簡單的學習,你也一定能寫VB、C#…等等等。

網路機器人Web Bot、Web Spider

一個能在抓取網頁內容或是控制網頁行為的程式,大概都可以稱為「網路機器人」,其實我對這個課題相當的感興趣,因為這真的是相當好用的東西,我來說一個應用的實例,比如說,我想要抓所有上市公司歷年來配息的記錄,想要找出這種配股配息能夠年年成長的公司,那你是要選擇自己一個一個網頁開來看嗎?

curl-3.png

如果你真的自己這麼做了,可能看還沒有一半,你就要去看眼科醫生了;而有錢一點的人,可能就請個幾位工讀生來幫他看這些資料,而像我們這種沒有錢,又不想自己看的人,就可以利用程式來幫我們整理這些資料。

早期,我都是利用Perl這個程式語言(可參考:Perl程式設計最佳入門教學書-Perl學習手冊(駱馬書)),有時會用AutoIt(http://www.autoitscript.com/site/autoit/)來寫,AutoIt很好用,但沒有教學書,就是只能看程式內的英文help檔。

後來為了要了解CURL的進階功能,我在博客來找了一下,看看有沒有相關的書,後來發現到這類的書很少,目前只有一本「網路機器人、網路蜘蛛與網路爬蟲 第二版:PHP/cURL程式設計指南」,這本書使用了PHP加上CURL來寫成「網路機器人」的程式,無論從觀念到實作,都介紹的很棒,作者還把CURL及PHP整理寫成另一個函式庫,完完全全的簡化了CURL,因此只要寫簡單的一些程式碼,就可以完成很多事,雖然最後我沒有使用PHP來寫我想要寫的程式,因為我要寫的程式,比較偏「操作瀏覽器」,而使用PHP/CURL比較偏抓資料(用來抓例子中股票的資料,就非常的適合),但我還是從這本書中,得到很多寶貴的知識,所以如果你會想要得到Web Bot、Web Spider相關的知識時,千萬不要少了這本書。

curl-1.jpg

最後說明一下,我最後是使用了C#的WebBrowser。

也許您會喜歡

26 comments

Steve 2015-09-09 - 17:30:14

你好,請問有關於你透過C#的WebBrowser製作的參考,可以分享一下嗎?

Reply
changyang319 2015-09-04 - 18:18:29

好像有點不太是我的意思。

我的意思是,因為有些網頁,可能都需要填一些資料,選擇一些控制項,進而提交網頁,像是註冊網頁之類的,所以如果用PHP/CURL的方式,我就必需要自己先分析網頁,準備那些要POST的資料,再去提交網頁,這樣就會很麻煩,所以這部份如果用C#的WebBrowser,或者AutoIt語言,就會方便很多。

Reply
andyto202 2015-08-31 - 01:25:38

你好
你的一句話
我挺感興趣的
因為我要寫的程式,比較偏「操作瀏覽器」,而使用PHP/CURL比較偏抓資料
這句話的意思是不是
因為你想抓的資料可能都需要認證
所以如果用
C#的WebBrowser
只要手動登入就可以抓到想要抓的資料了
是嗎

Reply
changyang319 2014-08-21 - 12:34:36

不客氣喔,彼此交流一下而已。

Reply
訪客 2014-08-14 - 21:17:00

恩恩
我以為是寫網頁的我要負責的XDD
只不過說自己寫網頁好像太自以為是的感覺= =

SQL injection 的問題我會去關注的
雖然沒學過SQL((沒看過甚麼類似的書))
只有之前在寫PHP的時候拿來當資料庫用過

感謝您幫我解決我的問題^^
因為在網路上都是素不相識的人
你卻願意這樣撥空回答我的疑問
真的挺感激的
心中有點莫名的感動(掉淚)

Reply
changyang319 2014-08-11 - 12:47:58

漏洞修補這你應該可以不用去考慮,這應該算是網管該要去注意的,你應該著重在網站製作上的漏洞,像是SQL injection的問題。
不過你學習的動力這麼強烈,一定可以學的很好的。
學會自己製作網站,真的是一個很好技能。

Reply
阿杜 2014-08-05 - 05:07:41

PS:
再把以上兩項跟PHP融合XDD
//這邊說的以上兩項 是html5,JavaScript

Reply
阿杜 2014-08-05 - 05:05:23

嗯嗯
這學期學校開始教寫網頁=A=
應為我們在學校用的是appserv但我事前在家用的是Wamp
所以不曉得appserv漏洞會不會影響到我的網頁/網站 被攻擊
如果有影響到的話 我想事先填起來 養成好習慣
這樣以後再寫網頁DeBug會比較容易也比較輕鬆
我比較不擔心php的方面 應為我函數的"可控性較低"
我比較怕的是JavaScript 應為不是很熟
再加上 JavaScript是使用者可見的
我們老師是教我們寫網頁
沒有教我們填補漏洞 或者是 危險函數不要使用
但我還是會避免使用危險函數
((雖然提交作業(網頁)的時間有時會比較晚))
———————————————————————————————-
聽你上面一說我現在才搞清楚Apache,PHP,MySql這些套件=ˇ=
之前都是半懂半懂..(就是不是很懂= =)
這些套件是裝在Apache,Wamp裡面的
//個別安裝
//是把他們三個套件 另外搜尋版本 下載 安裝
————不知道我的理解對不對… 有錯還是請幫忙修正了—————-
那我還是先把JavaScript學好
再把以上兩項跟PHP融合XDD
其實學校只有要我們寫Html5
但是之前在做PHP Spider之前
就已經把Html5摸過了
雖然精益求精
但我還是想學新的東西=ˇ= (手,腦,超養..)
(JavaScript和資安防護)
是我想把它跟JavaScript和PHP做結合=))
/*我真貪心XDD*/

Reply
changyang319 2014-08-04 - 06:02:02

應該說appserv裡面有包括了apache這個軟體。
軟體原本就有可能會存在一些漏洞,所以有人會建議appserv所包括的這些軟體,像是Apache、PHP、MySQL,最好是各別安裝,這樣將來在更新時,也會比較方便。
但你才剛學而已,其實不用在意這麼多,先學會使用比較快,過一陣子再來嘗試看看,是否有辦法獨力自己分別安裝這些套件。

Reply
阿杜 2014-07-24 - 17:12:03

請問樓上"小克"說的appserv 跟 apache是一樣的東西嗎@@?
我看很多書上有關"apache x.x.x"的漏洞
"標頭檔漏洞".."'上傳漏洞".."溢位漏洞"..
這些是架站工具本身的漏洞??還是腳本的漏洞呀..?
應為我的php腳本要跟JavaScript做結合
如果是架站工具本身的漏洞,除了跟新版本
那還可以用腳本的方式來排除嗎??
我只知道危險的語法不要用…
然後php參數要注意..
因為最近有在關注網站漏洞的問題
((其實才剛開始學沒多久XDD))

Reply
changyang319 2014-06-04 - 09:31:49

你懂我的,這本真的不錯,我們國內好像都沒有這類的書籍,有些書籍雖然教了很多,但卻沒有附什麼程式碼或函式庫,但作者在這本書中,直接分享了他所封裝好的函式庫,而且都是可以正常執行的,真的非常的棒。

如果這位作者有再出其它種類的書籍,一定也很值得購買的。

Reply
阿杜 2014-06-02 - 12:34:22

恩 真的大推
抓資料很方便XDD
裡面很多內建函式庫 <<這裡真的幫我很多
對初學者真的很有用-

Reply
changyang319 2014-04-24 - 12:43:06

這本書真的是相當有用,作者他簡化了php的函式,所以讓我們在使用他所說的技巧時,程式寫起來特別的簡單,真的是大推這本書。

而確實如你所說,php這東西就是如此,如果你沒有寫過的話,確實會摸不著頭緖,因為你想要顯示出「東西」出來的話,是要自己輸出的,程式本身可不會幫你輸出至網頁上來。

我是因為後來這本書的需求,和我想要的功能不同,所以沒有在深入去研究,但大推這本書。

Reply
阿杜 2014-04-24 - 00:49:26

謝謝~!!
我終於成功執行了我的網頁機器人了=))
原來他只能拿來抓取網頁
本身不提供網頁= =

怪不得一開始執行沒有東西
原來他要對其他網頁發送請求
才能抓取到其他網頁的東西
哈哈….

Reply
changyang319 2013-11-19 - 11:46:36

謝謝小克的建議,聽專家的準沒錯,若網站有要對外開放的話,就用Xampp吧。

Reply
小克 2013-11-19 - 11:40:22

Appserv很久沒開發而且漏洞很嚴重又很多
建議改用Xampp 是一樣概念的東西

Reply
changyang319 2013-11-17 - 23:39:42

我不懂您的意思。

Reply
阿杜 2013-11-17 - 21:03:57

但是位於同一個域網的電腦無法讀出我的網頁
是正確的嗎@@?

Reply
changyang319 2013-11-17 - 08:47:26

其實你這樣已經安裝好PHP的網頁伺服器了,現在只要把製作好的網頁放進網頁伺服器的資料夾中,我記得好像是APPSRV裡的WWW資料夾,再從瀏覽器中輸入網址,就可以開啟網頁了。

例如我放進去的檔案是 test.html
那輸入的網址即是「http://127.0.0.1/test.html」。

Reply
阿杜 2013-11-16 - 14:04:46

我已經做到以下這個畫面了
http://i2.wp.com/cdn3.sofree.cc/2011/AppServeWAMP_12A19/appserve13.png
接下來不知如何是好

Reply
changyang319 2013-11-16 - 08:34:45

您只差一點點準備的工作而已,不用太洩氣,花一點時間(最快幾分鐘,最慢一、二天也能完成)架好網頁伺服器,就可以開始您的學習之旅,學東西總是要靠一點興趣,說不定你能因此學好這個東西。

Reply
阿杜 2013-11-16 - 07:16:12

恩 謝謝了
我的書等級對我來說是偏高了= =
應該先選基本款的..
到時候有問題再來問你XDD

Reply
changyang319 2013-11-16 - 06:41:28

我在上面就有提到了,要請你看一下這個網站
http://sofree.cc/windows-appserv/

架設好PHP的網頁伺服器之後,再將寫好的程式,存成「.php」檔案,再上傳至php網頁伺服器中,最後再透過「瀏覽器」來執行。

就如同書中P.28 「在瀏覽器中執行網路機器人」這一段所述。

這些知識牽涉很廣,請恕我沒有辦法一一解說,當您決定使用PHP這個語言來寫程式時,學會架設一個網站是一個很基本的事,建議您先放下手上的這個「網路機器人書」進階書,先去了解一下PHP程式如何執行比較重要。

Reply
阿杜 2013-11-15 - 00:58:00

稍晚才回有些抱歉

謝謝你的答覆
但我還是不太了解QQ
請問要如何將 這一小段PHP程式碼用瀏覽器來執行..
我打在記事本.txt上轉.htm執行瀏覽器是空白的 ((號啕大哭))
話說我是"超級"~初學者= = 沒碰過php和curl…
這方面還是請多關照了

((我是照書上打的以下))

<!–如下–> ((這邊不是

#定義你想要下載的檔案
$target = "http://www.webbotsspidersscreenscrapers.com/hrllo_world.html" ;
$file_handle = fopen($target, "r");

#取得檔案
while (!feof($file_handle))
echo fgets($file_handle, 4096);
fclose($file_handle);

<!–以上–> ((這邊不是

謝謝指導了

Reply
changyang319 2013-11-13 - 13:32:00

首先,您的觀念有一點不對,這本書上教的是PHP的CURL,因此,用PHP語言寫的程式,是不用「編譯」的,可以直接放進「網頁伺服器(支援PHP)」,然後透過「瀏覽器」來執行,若是您想要再本機直接執行,則必需在你的電腦上,安裝Apache套件,相關的教學您可以參考
http://sofree.cc/windows-appserv/

而C#這個語法,和C++一樣,就可以使用Visual Studio來編譯,變成執行檔之後,就可以直接執行,因此這兩者是不一樣的。

Reply
阿杜 2013-11-12 - 18:04:55

請問 "網路機器人、網路蜘蛛與網路爬蟲 第二版:PHP/cURL程式設計指南"
要用甚麼編譯器才可以編程呀@@??
網路上到處找都找不到(用甚麼編譯器)QQ ((小的爬文能力欠佳…))
我目前 記事本;JavaScript;visual studio(C# ,Web Developer)都試過了
但還是無解(目前)
我看到妳文章裡面用了C#的WebBrowser
<<於是我也用C#開了一個WebBrowser物件 但是不知道程式碼要打在哪裡
(不知道這作法對不對)>>
請問版大可以教我一下嗎- – 應為我真的不知道該如何編程
幾乎每個編譯器都對"$"這個符號很敏感 尤其是偵錯的時候
拜託了

Reply

Leave a Comment

這個網站使用cookies來改善您的瀏覽體驗。我們預設您同意此設定,但如果您不希望使用cookies,您有權選擇退出。 接受 詳細內容