cURL、file_get_contents、snoopy.class.php 优缺点
生活随笔
收集整理的這篇文章主要介紹了
cURL、file_get_contents、snoopy.class.php 优缺点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
curl()、file_get_contents()、snoopy.class.php這三個遠程頁面抓取或采集中用到的工具,他們功能相當,到底有是么優缺點呢,下面逐一介紹:snoopy.class.php snoopy 是用 fsockopen 自開發的一個類,效率比較高且不需要服務器特定配置支持,在普通虛擬主機中即可使用,但是經常出問題。官方網址:http://sourceforge.net/projects Snoopy是一個php類,用來模擬瀏覽器的功能,可以獲取網頁內容,發送表單。 Snoopy的特點: 1、抓取網頁的內容 fetch 2、抓取網頁的文本內容 (去除HTML標簽) fetchtext 3、抓取網頁的鏈接,表單 fetchlinks fetchform 4、支持代理主機 5、支持基本的用戶名/密碼驗證 6、支持設置 user_agent, referer(來路), cookies 和 header content(頭文件) 7、支持瀏覽器重定向,并能控制重定向深度 8、能把網頁中的鏈接擴展成高質量的url(默認) 9、提交數據并且獲取返回值 10、支持跟蹤HTML框架 11、支持重定向的時候傳遞cookies 要求php4以上就可以了,由于本身是php一個類,無需擴支持,服務器不支持curl時候的最好選擇。 file_get_contents() file_get_contents?是 fsockopen 功能的簡單打包,效率稍低些,但是抓取成功率很高,所以在 snoopy 出問題的時候我一般那他來。5.0.0 添加了對 context 的支持,有了context,他也可以發送 header 信息,自定義用戶 agent, referer, cookies?都不在話下。5.1.0 添加了 offset 和 maxlen 參數,可以只讀文件的一部分內容。 curl() 功能最強大,幾乎可以模擬瀏覽器的各個方面,幾乎可以以假亂真。效率也很高,支持多線程,不過需要開啟下 curl 擴展。 cURL是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。PHP也支持cURL庫,我們常常用來遠程頁面抓取和采集。 一些CMS會使用curl函數,這就需要在服務器開啟CURL擴展,下面介紹具體的方法: 1、將PHP的ext目錄下的三個文件:php_curl.dll、libeay32.dll和ssleay32.dll復制到系統system32目錄中。 2、將php.ini中的 ;extension=php_curl.dll 前面的分號去掉 3、重啟IIS或Apache 4、測試代碼
< php
? ? ?//初始化
?? ?$ch = curl_init();
?? ?//設置選項,包括URL
?? ?curl_setopt($ch,CURLOPT_URL,”www.abc.net”);
?? ?curl_setopt($ch,CURLOPT_HEADER,1);
?? ?curl_exec($ch);
?? ?curl_close($ch);
?>
總結
以上是生活随笔為你收集整理的cURL、file_get_contents、snoopy.class.php 优缺点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP获得跳转的真实地址
- 下一篇: discuz7.2论坛首页显示欢迎新会员