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

 

php curl的使用心得的更多相关文章

  1. 不同版本PHP之间cURL的区别(-经验之谈)

    之前在做一个采集的工具,实现采集回来的文章,图片保存起来.文章内容是保存在数据库,图片是先需要上传到图片服务器,再返回图片地址,替换掉文章的图片地址. 问题来了:都能成功采集都东西,但是,本地测试是正 ...

  2. 打印 上一主题 下一主题 利用cURL实现单个文件分多段同时下载,支持断点续传(修订版)

      利用cURL实现单个文件分多段同时下载,支持断点续传(修订版) [复制链接] 摘自 http://bbs.chinaunix.net/thread-917952-1-1.html 在ubuntu下 ...

  3. linux下c/c++方式访问curl的帮助手册

    自:http://blog.chinaunix.net/u1/47395/showart_1768832.html 有个业务需求需要通过curl 代理的方式来访问外网 百度了一把,测试可以正常使用.记 ...

  4. SuperWebClient -一个基于CURL的.NET HTTP/HTTPS模拟神组件(1)

    我们都知道,不管你是做爬虫也好,采集工具也罢,它们的HTTP/HTTPS模拟访问总是一个基础问题,我估计有很多人和我一样,虽然这样,那样的内置或是第三方类库用了很多,却总是会有一些不如意的问题存在,亦 ...

  5. 腾讯通信云服务端使用心得,腾讯云IM

    腾讯通信云服务端使用心得 1.腾讯通信服务入口并创建应用 方便使用保留url地址 :   https://cloud.tencent.com/product/im 注册账号腾讯云账号->通过审核 ...

  6. libcurl使用心得-包括下载文件不存在处理相关(转)

    libcurl使用心得 Libcurl为一个免费开源的,客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,跨平台,支持 ...

  7. cocos2d-x AssetsManager libcurl使用心得

    libcurl使用心得 最新正在写cocosclient更新的逻辑.研究了一下cocos2d-x自带的Libcurl,下面是自己在使用过程中的心得和遇到的未解问题.希望大家一起讨论一下,欢迎大家指导. ...

  8. [转]linux 下 使用 c / c++ 调用curl库 做通信开发

    example:   1. http://curl.haxx.se/libcurl/c/example.html  2. http://www.libcurl.org/book:  1. http:/ ...

  9. 可能是东半球最好的 Curl 学习指南,强烈建议收藏!

    本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...

随机推荐

  1. 认识Redis集群——Redis Cluster

    前言 Redis集群分三种模式:主从模式.sentinel模式.Redis Cluster.之前没有好好的全面理解Redis集群,特别是Redis Cluster,以为这就是redis集群的英文表达啊 ...

  2. Cephfs 操作输出到日志查询系统

    前言 文件系统当中如果某些文件不见了,有什么办法判断是删除了还是自己不见了,这个就需要去日志里面定位了,通常情况下是去翻日志,而日志是会进行压缩的,并且查找起来非常的不方便,还有可能并没有开启 这个时 ...

  3. Microsoft Visual C++ 2005 SP1无法安装

    安装时出现需要Microsoft Visual C++ 2005 Redistributble对话框, 里面说Command line option syntax error . Type Comma ...

  4. error while loading shared libraries解決方法

    在linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了. error while loading ...

  5. 如何使用GitHub创建Maven私有仓库

    [Github上创建仓库] 首先,在GitHub上创建自己的仓库(mvn-repo): [配置本地setting文件] 找到本地的maven settings文件,配置server: 有两种选择,可以 ...

  6. 让面试官心服口服:Thread.sleep、synchronized、LockSupport.park的线程阻塞有何区别?

    前言 在日常编码的过程中,我们经常会使用Thread.sleep.LockSupport.park()主动阻塞线程,或者使用synchronized和Object.wait来阻塞线程保证并发安全.此时 ...

  7. [原题复现]-HITCON 2016 WEB《babytrick》[反序列化]

    前言 不想复现的可以访问榆林学院信息安全协会CTF训练平台找到此题直接练手 HITCON 2016 WEB -babytrick(复现) 原题 index.php 1 <?php 2 3 inc ...

  8. Angular 富文本编辑之路的探索

    作者:杨振兴Worktile 前端工程师,PingCode Wiki 产品技术负责人 PingCode Wiki 提供结构化知识库来记载信息和知识,便于团队沉淀经验.共享资源,欢迎大家注册试用 本文主 ...

  9. python 中 try...finally... 的优雅实现

    1. 关于 try.. finally.. 假如上帝用 python 为每一个来到世界的生物编写程序,那么除去中间过程的种种复杂实现,最不可避免的就是要保证每个实例最后都要挂掉.代码可简写如下: tr ...

  10. 如何查看CDR文件是出自哪个版本?

    如何才能知道某个cdr文件用哪个版本的CorelDRAW软件打开?网上CorelDRAW软件有很多版本,都不知该下哪个了?这是我听到大家问道最多的问题,这是因为CDR低版本软件打不开高版本文件. 方法 ...