PHP 抓取網頁內容筆記
最近實作抓取網頁內容,也遇到一些問題,為免那和我不好的記憶力和我分手,把重點記一下。
環境:
Windows
Php 5
Curl
Regular expression
Pho simple html dom
如同以往,抓取網頁之後就是要擷取特定模板(pattern) 內容,這個過程,一直以來並沒有不同。
有些情況發生了,雖然大多數的網頁用 GET 就能下載了( curl, file_get_html),有些網頁,要用 POST 方式,需要把 POST 參數代入(例如 curl: CURLOPT_POSTFIELDS),才能順利取得網頁的內容,否則一片空白,畢竟抓到這些資料來源,才能有下一步。
抓下來的資料,(十年)之前使用土法煉鋼的方式,用遁序漸進的方式,不斷的使用關鍵字炸開(explode)的方式,來取得目標的內容,雖然這等方式在現在也能達成目的,總是希望有點長進,果然,讀別人的程式碼是很有用地 XD。
如果時間上可行,測出正規表示法的比對模板,是很好的解決方式,不需要其他工具或是程式的導入,可惜,這些符號,和我真的很不熟(超生硬),有些真的花非常多的時間還測不出來,超需要慧根(是什麼,能吃嗎?),只能山不轉路轉了。
jQuery 對於擷取 DOM 有其長處,因為想直接在 PHP 上面實作,所以先把 jQuery 擱著,所幸找到了 simple html dom 的工具($html -> find('TAG_NAME', 0) -> plaintext;),讓這個工作變得有效率了,超級開心。
收工!
如同以往,抓取網頁之後就是要擷取特定模板(pattern) 內容,這個過程,一直以來並沒有不同。
有些情況發生了,雖然大多數的網頁用 GET 就能下載了( curl, file_get_html),有些網頁,要用 POST 方式,需要把 POST 參數代入(例如 curl: CURLOPT_POSTFIELDS),才能順利取得網頁的內容,否則一片空白,畢竟抓到這些資料來源,才能有下一步。
抓下來的資料,(十年)之前使用土法煉鋼的方式,用遁序漸進的方式,不斷的使用關鍵字炸開(explode)的方式,來取得目標的內容,雖然這等方式在現在也能達成目的,總是希望有點長進,果然,讀別人的程式碼是很有用地 XD。
jQuery 對於擷取 DOM 有其長處,因為想直接在 PHP 上面實作,所以先把 jQuery 擱著,所幸找到了 simple html dom 的工具($html -> find('TAG_NAME', 0) -> plaintext;),讓這個工作變得有效率了,超級開心。
收工!
留言
張貼留言