php的curl有很多引數,整理一下其中的常用引數的作用
設定為 1
是檢查伺服器SSL證照中是否存在一個公用名(common name)。譯者注:公用名(Common Name)一般來講就是填寫你將要申請SSL證照的域名 (domain)或子域名(sub domain)。 設定成 2,會檢查公用名是否存在,並且是否與提供的主機名匹配。 0
為不檢查名稱。 在生產環境中,這個值應該是 2
(預設值)。
2.CURLOPT_SSL_VERIFYPEER
false
禁止 cURL 驗證對等證照(peer's certificate)。要驗證的交換證照可以在 CURLOPT_CAINFO
選項中設定,或在 CURLOPT_CAPATH
中設定證照目錄。
3.CURLOPT_RETURNTRANSFER
true
將curl_exec()獲取的資訊以字串返回,而不是直接輸出。curl_exec()預設是會輸出請求內容的,相當於echo xxx;如果設定了該引數curl會把請求到的引數賦值成變數返回。
4.CURLOPT_USERAGENT
在HTTP請求中包含一個"User-Agent: "
頭的字串。一般用來模擬瀏覽器行為。
5.CURLOPT_COOKIE
設定 HTTP 請求中"Cookie: "
部分的內容。多個 cookie 用分號分隔,分號後帶一個空格(例如, "fruit=apple; colour=red
")。訪問管理比較嚴格的網站會檢查cookie,如果想採集這類網站上的資料,那麼這個引數是必不可少的。
6.CURLOPT_TIMEOUT
允許 cURL 函式執行的最長秒數。設定最長連線時間,當curl陷入假死,自動斷開連線,然後重新發起請求。
7.CURLOPT_FOLLOWLOCATION
true
時將會根據伺服器返回 HTTP 頭中的 "Location: "
重定向。(注意:這是遞迴的,"Location: "
傳送幾次就重定向幾次,除非設定了 CURLOPT_MAXREDIRS
,限制最大重定向次數。)有的網站會有重定向操作,加上這個操作curl會跟隨網站的重定向抓取。
8.CURLOPT_REFERER
在HTTP請求頭中"Referer: "
的內容。在http請求中Referer表示請求來路,一些網站會驗證Referer來作為反爬措施。
9.CURLOPT_HTTPHEADER
設定 HTTP 頭欄位的陣列。格式: array('Content-type: text/plain', 'Content-length: 100')。這個引數可以設定http的header,通常用來偽造資訊之類的,比設定
CLIENT-IP和X-FORWARDED-FOR來偽造ip,不過能否偽造成功就要看被爬取的網站是怎麼識別ip的了。
10.CURLOPT_PROXYTYPE
代理型別,可以是 CURLPROXY_HTTP
(預設值) CURLPROXY_SOCKS4
、 CURLPROXY_SOCKS5
、 CURLPROXY_SOCKS4A
或 CURLPROXY_SOCKS5_HOSTNAME.很多網站會通過ip訪問頻率來反爬,嚴格的甚至還會封ip。使用這個引數可以配置代理ip,降低單個ip訪問頻次。
11.CURLOPT_PROXYPORT
代理伺服器的埠。埠也可以在CURLOPT_PROXY
中設定。
12.CURLOPT_PROXY
HTTP 代理通道。(有CURLOPT_PROXYPORT引數寫為ip就行,沒用CURLOPT_PROXYPORT引數寫文ip加埠)