/**

* 抓取数据 https 或 http 形式

* @param $url 链接

* @param $data 参数

* @return mixed 返回数据

*/

private function curlS($url, $data)

{

$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$curl = curl_init(); // 启动一个CURL会话

curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在

curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent/*$_SERVER['HTTP_USER_AGENT']*/); // 模拟用户使用的浏览器

if (ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')) {

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

}

//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转

curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer

curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求

curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包

curl_setopt($curl, CURLOPT_TIMEOUT, 200); // 设置超时限制防止死循环

curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回

$tmpInfo = curl_exec($curl); // 执行操作

if (curl_errno($curl)) {

echo 'Errno'.curl_error($curl);//捕抓异常

}

curl_close($curl); // 关闭CURL会话

return $tmpInfo; // 返回数据

}

php 抓取https请求数据,PHP + curl 实现 http 或 https 抓取数据:相关推荐

  1. 爬虫python爬取页面请求_Python网络爬虫第三弹《爬取get请求的页面数据》

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  2. android https请求证书过滤白名单,Android处理https请求的证书问题

    android中对部分站点发送https请求会报错,原因是该站点的证书时自定义的,而非官方的,android手机不信任其证书,为了解决这个问题,一般有两种解决方案 忽略证书验证 下载证书到本地,添加到 ...

  3. https 请求白屏_记一次HTTPS性能优化

    为了解决部分 ios 打开 h5 网页很慢的情况(参考地址:https://developers.weixin.qq.com/community/develop/doc/000a6671efc968a ...

  4. c# https请求忽略证书验证_C# httpwebrequest访问HTTPS错误处理方法

    C# httpwebrequest访问HTTPS链接时遇到这个错误,但是如果我开抓包工具,比如filddler2,则POST返回正常 错误提示的Message为: 基础连接已经关闭: 发送时发生错误. ...

  5. Charles+安卓模拟器 抓取https请求

    1.抓取https请求 如果模拟器不安装证书的话,我们可以抓取移动端的http请求了,但是https请求,会出现Unknown,下面是解决办法. 这里使用的是夜神模拟器(建议使用Android 5), ...

  6. 使用Fiddler和雷电模拟器抓取安卓https请求

    使用Fiddler和雷电模拟器抓取安卓https请求 1.下载并安装Fiddler [Fiddler] https://www.telerik.com/download/fiddler 2. 打开Fi ...

  7. Charles监听HTTPS请求

    Charles是一个web调试代理,使开发人员能够查看机器和互联网之间的所有HTTP和SSL/HTTPS流量,这包括对HTTP 1.1和2.0的请求.响应.头文件.TLS信息.压缩和性能以及Proto ...

  8. RocketMQ源码(十七)—Broker处理DefaultMQPushConsumer发起的拉取消息请求源码

    转载来源: RocketMQ源码(19)-Broker处理DefaultMQPushConsumer发起的拉取消息请求源码[一万字]_刘Java的博客-CSDN博客 此前我们学习了RocketMQ源码 ...

  9. iOS使用自签名证书实现HTTPS请求

    原文链接:http://www.jianshu.com/p/e6a26ecd84aa 由于苹果规定2017年1月1日以后,所有APP都要使用HTTPS进行网络请求,否则无法上架,因此研究了一下在iOS ...

最新文章

  1. HotSpot JVM 垃圾收集原理
  2. C和指针之字符串简单实现strchr、strcmp函数
  3. javascript闭包_JavaScript闭包教程–带有JS闭包示例代码
  4. django安装与简介
  5. ImportError : No module named graphics
  6. ibm刀片服务器系统瘫痪,ibm刀片服务器系统安装资料
  7. 【开发工具集】DLL依赖查看工具——Dependency Walker
  8. EPLAN液压气动流体元件符号库导入
  9. 解决Access denied for user ''@'localhost' to database 'mysql'问题
  10. 面试题之10亿正整数问题
  11. Banner大小之国际标准
  12. java.lang.IllegalStateException: Failed to introspect Class
  13. Java_笛卡尔积计算
  14. PHP+ mysql实现注册登录功能
  15. 网络安全,非对称加密,对称加密和非对称加密的区别
  16. 科创人·36氪副总裁王坤:企服产品应重视使用者体验,36氪将推出中国版「魔力象限」
  17. 基于Java+SpringBoot+vue+element驾校管理系统设计和实现
  18. 使用AlertDialog自定义布局,解决自定义控件的监听事件无效的办法
  19. 最优控制理论 七、关于数值求解算法的总结及软件分享
  20. Python实现图像垂直翻转

热门文章

  1. wince 6.0 设备管理器架构(Device Manager Architecture)
  2. 总结 @ 在 C# string 中的用法
  3. 新建了一个英文Blog
  4. 「实战篇」开源项目docker化运维部署-后端java部署(七)
  5. VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误...
  6. webService的简单使用
  7. Java内存模型的历史变迁
  8. pdns 错误解决[备忘]
  9. 哇,union的优先级很高嘛
  10. CentOS Squid 安装配置