白話CURL抓取資料

2021-09-08 03:26:52 字數 2716 閱讀 6737

一: curl的意義

二: curl的實現步驟

三: 詳細實現curl

四: 完整實現curl請求

curl 模擬瀏覽器請求,比如獲取遠端瀏覽器內容,可以將遠端的cookie資訊也獲得過來,這種情況適合於跨站的登入資訊的同步。比如你在www.demo.com下登入,然後到music.demo.com下應該也會是登入狀態,

我們將curl的步驟分為以下7步:

1.初使化curl資源

2.引數設定請求的協議位址

3.引數設定是否返回請求結果

4.設定傳送資料(無傳送資料可不設定)

5.其他的引數資訊設定(按實際工作需要決定)

6.執行或執行得到返回結果

7.關閉curl資源

第二步至第五步本質上,應該統成為curl引數設定;所有curl設定引數設定都是通過curl_setopt都完成;

1.第一步:初始化curl資源;

1).初始化curl資源就是用curl_init函式;返回curl的操作資源。

2).我們在後面是通過curl_setopt向curl的操作資源變數壓入資料的。

$ch = curl_init();
2.引數設定請求的協議位址;

curl_setopt函式的詳細使用如下:

型別說明

函式curl_setopt

引數1curl資源變數

引數2curl引數選項

引數3curl引數值

curlopt_url這個引數選項規定了請求的url位址。

curl_setopt($ch, curlopt_url, "");
3.引數設定是否返回請求結果;

我們希望curl請求後返回對應的結果。我們要得到對應的結果,也需要設定乙個引數,這個引數名為:curlopt_returntransfer。

若需要返回值即為1。不需請求後返回的結果可設定為0。

curl_setopt($ch, curlopt_returntransfer, 1);
4.設定傳送資料;

如果是get請求,我們不需要設定傳送的引數。在post等請求的時候,我們需要設定傳送方法為post方法。並設定傳送的資料。

*curlopt_post *值設為1是使用post方法,0為不使用post方法

curlopt_postfields設定傳遞的資料

//宣告使用post方式來進行傳送

curl_setopt($ch, curlopt_post, 1);

//傳送什麼資料呢

curl_setopt($ch, curlopt_postfields, $data);

5.其他的引數資訊設定;

如果是https有的時候我們需要忽略https的安全證書。

curlopt_ssl_verifypeer和curlopt_ssl_verifyhost 兩個引數改為false即忽略了證書。

curl_setopt($ch, curlopt_ssl_verifypeer, false);

curl_setopt($ch, curlopt_ssl_verifyhost, false);

curlopt_header這個引數又決定是是否處理http的頭資訊,我們不想接收處理的話可將這個值設定為0。

curl_setopt($ch, curlopt_header, 0);
我們還可以設定請求的超時時間,引數為:curlopt_timeout。

curl_setopt($ch, curlopt_timeout, 10);
6.執行或執行得到返回結果;

我們第三步中,將curlopt_returntransfer 引數中將值設為1。如果執行的結果有資料。使用curl_exec執行後,會將結果返回給$output變數。

$output = curl_exec($ch);
7.關閉curl資源;

關閉curl資源。因為資源型別,我們反覆強調過,有開啟就有關閉。

如果不需要使用,使用curl_close關閉後立刻釋放記憶體。

curl_close($ch);
<?php

//初始化

$ch = curl_init();

//設定選項,包括url

curl_setopt($ch, curlopt_url, "");

curl_setopt($ch, curlopt_returntransfer, 1);

curl_setopt($ch, curlopt_header, 0);

//執行並獲取html文件內容

$output = curl_exec($ch);

//釋放curl控制代碼

curl_close($ch);

//列印獲得的資料

print_r($output);

?>

curl多執行緒抓取資料

curl模擬多執行緒,傳入一維陣列url curl模擬多執行緒 access public author 2017.4 param array return array function getcurlobject urls array responses array 聲名乙個陣列 dowhile ...

CURL抓取頁面

curl是利用url語法在命令列方式下工作的開源檔案傳輸工具,他能夠從網際網路上獲得各種各樣的網路資源。簡單來說,curl就是抓取頁面的公升級版。1.初始化,建立乙個新curl資源 ch curl init 2.設定url和相應的選項 curl setopt ch,curlopt url,curl ...

curl 多執行緒抓取

php curl 多執行緒抓取 curl 多執行緒 param array array 並行 param int timeout 超時時間 防止死迴圈耗死cpu 這段是根據網上的寫法 do while mrc curlm call multi perform 當正在接受資料時 while activ...