一樣是因為工作需要,必須模擬使用者透過Browser去爬固定幾個有問題的網頁來測試,本來在php上面只需要透過fopen()這個函式來抓取網頁即可,如以下方式:

<?php
$handle fopen("http://www.example.com/""r");
$handle fopen("ftp://user:password@example.com/somefile.txt""w");
?>


即可透過PHP抓取網頁或者ftp的檔案,但是若要考量到必須模擬browser和web server之間互動的話,勢必要搞一個http client,好在http client也只是個Socket程式罷了,之前也用C語言實現過一個簡單的http client,不過因為那個太陽春了,要去增加一些常見的網頁互動的動作有點浪費時間,所以在這邊跟大家介紹個套件,HttpClient Class,這個PHP Class是我在網路上面找到的,作者是Simon Willison,雖然這隻程式是2003年寫的,但是對HTTP1.0/1.1、 cookie以及一些基本的網頁認證等功能都有提供,算是一個相當完整的web client。

只要將HttpClient.class.php抓下來後,將其include,直接new一個Object就可以做HTTP的操作了,常用的操作其實在example裡面就已經有了,只要把Code抓下來改一下即可Work,不用花時間去K它的Manual。

以上轉自http://nsysumis94.pixnet.net/blog/post/18343041

Felix 發表在 痞客邦 PIXNET 留言(0) 人氣()