推 fillmore:web server看到的跟你client直接讀取網頁的結果會不同 05/18 02:59
server/client 在 internet 上,廣義而言,其實是種相對的概念。
若能完全模擬 client/browser 的行為,理論上兩者應可看到相同的
結果。
因此,如果想寫 robot,讓它能夠自動抓取、解析網頁,那麼最好先
了解 browser 的運作方式--特別是遇到一些 web application 會
判斷 client/browser 時特別有用。
用 php 寫這種 robot,筆者認為可以分為三種層級:第一級是能夠模
擬 browser 的特性,第二級是模擬簡單人類的操作方式,第三級是模
擬出真人的操作方式。第一、二級的模擬,其實只要明白 http 即可。
第三級則需要繁複的演算法,如果不是要寫啥特殊的 cracker,應該不
需要模擬到這個層級 :P
HTTP 傳輸的不僅是 HTML 文件,它也被用來傳輸表單的變數、或是其
他的多媒體內容。除了對處理標的的特性(如:您要處理的是 HTML)
要有所了解之外,還必須了解 HTTP 怎麼傳輸這些訊息。
網路上剛好找到了一篇介紹 http 的 power point,建議您看一下。
http://msa.vnu.edu.tw/~merlin/932network/8.ppt
此外 wiki 上也有些介紹,以下分別是中文和英文的簡介,英文的內容
稍微豐富些。
http://zh.wikipedia.org/w/index.php?title=Http&variant=zh-tw
http://en.wikipedia.org/wiki/Http
另外也可以 google://http header curl 等,找些相關資料
希望以上資訊有所幫助 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.199.121
推 fillmore:恩我的確是要模擬 client/browser 的行為 但是這就是我碰 05/18 16:03
→ fillmore:到的問題 05/18 16:03
推 foxzgerald:有辦法知道是什麼原因造成看到不同的內容嘛? 05/18 16:12
推 roga:打這麼多字..辛苦了 :P 05/18 19:02