:::

16. curl網頁採集

一、何謂curl

1.curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。curl是 一個利用URL語法在命令行方式下工作的文件傳輸工具。
2.它支持很多協議:FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE 以及 LDAP、HTTPS認證,HTTP POST方法、HTTP PUT方法、FTP上傳、kerberos認證、HTTP上傳、代理服務器、cookies、用戶名/密碼認證、下載文件斷點續傳、上載文件斷點續傳、http代理服務器管道、IPv6、 socks5代理服務器,通過http代理服務器上傳文件到FTP服務器等等。

二、使用curl

1.開啟php.ini,將「extension=php_curl.dll」前的分號移除。
2.把xampp\php\ssleay32.dll 及 libeay32.dll 複製到 Windows\system32 下
3.把xampp\php\extensionsphp_curl.dll 複製到 Windows\system32 下
4.重新啟動apache

三、curl基本用法

<?php
$url = "http://www.mobile01.com/";
$ch = curl_init();
$options[CURLOPT_URL]=$url;
$options[CURLOPT_HEADER]=false;
$options[CURLOPT_RETURNTRANSFER]=true;
$options[CURLOPT_USERAGENT]="Googlebot/2.1";
$options[CURLOPT_FOLLOWLOCATION]=true;

curl_setopt_array($ch, $options);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>

常用的參數項目

CURLOPT_URL
需要獲取的URL地址,也可以在PHP的curl_init()函數中設置。
CURLOPT_HEADER
是否截取header的資訊
CURLOPT_RETURNTRANSFER
將結果回傳成字串
CURLOPT_USERAGENT
偽裝成何種瀏覽器
CURLOPT_FOLLOWLOCATION
是否抓取轉址

1.函數說明:
(1) curl_init():建立連線,curl_close($ch):關閉連線
(2) curl_setopt_array($ch , $opt_arr):以陣列設定curl連線參數
(3) curl_exec($ch):執行curl連線

2.若是裡頭有相對路徑,可加個:echo "<base href='$url' />";

四、擷取部份內容

1.正規表達式工具:http://osteele.com/tools/rework/
2.preg_match("/規則/s", "原文", $結果);
3.preg_match_all("規則/m", "原文", $結果);
4.規則的寫法如:「前條件(.*)後條件」
(1) $結果[1] 才是我們要的東西。
(2) 規則中,若有特殊符號,如:[ , ] , ( , ) , " , ' , \ 等,都需要加上「\」
(3) s 代表不管是什麼死人骨頭都當作搜尋結果,i則是不分大小寫,m是多行比對。
(4) 「.*」代表不限字數的任何東西,()裡的東西就是我們要找的結果。
$start="newtopics\[.*\] = \'";
$end="\';";
preg_match_all("/{$start}(.*){$end}/m", $output, $match);


五、lytebox燈箱效果

<script type="text/javascript" language="javascript" src="lytebox.js"></script>
<link rel="stylesheet" href="lytebox.css" type="text/css" media="screen" />
1.在連結中加入「rel='lyteframe' rev='width: 寬px; height: 高px; scrolling: auto」


:::

搜尋


書籍目錄

展開 | 闔起

線上使用者

15人線上 (8人在瀏覽線上書籍)

會員: 2

訪客: 13

wenyongfuo_goo, staff3402_goo,

更多…