php curl的使用心得

  php的curl有很多参数,整理一下其中的常用参数的作用

  1.CURLOPT_SSL_VERIFYHOST

  设置为 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加端口)

 

原文地址:https://www.cnblogs.com/zhouyuanpei/p/14120823.html