<?php
$curl = curl_init();// 初始化
// 准备提交的表单数据之账号和密码。(这个是根据表单选项来的)
$data = "_username=604989282@qq.com&_password=6481485" ;
// 这个配置是为了防盗链,
curl_setopt($curl,CURLOPT_REFERER,"http://www.ydma.cn/");
// 基本配置
curl_setopt($curl, CURLOPT_URL, 'http://www.ydma.cn/login/check');// 网址
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);// 不输出
curl_setopt($curl, CURLOPT_POST, 1);// POST方式
curl_setopt($curl, CURLOPT_POSTFIELDS,$data);// POST数据
curl_setopt($curl, CURLOPT_HTTPHEADER, array(// 头部信息类型
"content-type: application/x-www-form-urlencoded",
)); // Cookie相关设置
date_default_timezone_set("PRC");
curl_setopt($curl,CURLOPT_COOKIESESSION,TRUE);// 开启cookie和session
curl_setopt($curl,CURLOPT_COOKIEFILE,"cookiefile");// 存储名称
curl_setopt($curl,CURLOPT_COOKIEJAR,"cookiefile");// 存储名称
curl_setopt($curl,CURLOPT_COOKIE,session_name()."=".session_id());// 存储的是session_name()和session_id() curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);// 设置可以跳转
curl_setopt($curl,CURLOPT_HEADER,0);// 不去打印头部信息 curl_setopt($curl,CURLOPT_REFERER,"http://www.ydma.cn/"); // 设置一下跳转页面
// curl_setopt($curl,CURLOPT_URL,"http://www.ydma.cn/user/52897/learn");
curl_setopt($curl,CURLOPT_URL,"http://www.ydma.cn/course/137/preview/lesson/3961"); curl_setopt($curl,CURLOPT_POST,0); curl_setopt($curl,CURLOPT_HTTPHEADER,array("Content-type:text/html")); curl_setopt($curl,CURLOPT_REFERER,"http://www.ydma.cn/"); $res = curl_exec($curl); curl_close($curl); // echo str_replace('src="/files', 'src="http://www.ydma.cn/files', $res); // echo substr_replace($res,"<base href='http://www.ydma.cn/'>",strpos("<head>",$res),0);
echo str_replace("<head>","<head><base href='http://www.ydma.cn/'>",$res);
// echo $res;

页面来源:https://www.jianshu.com/p/682ddef25f55

测试一个网站,因为需要验证码没获取到信息

CURL的模拟登录和抓取页面的更多相关文章

  1. PHP Curl模拟登录并抓取数据

    使用PHP的Curl扩展库可以模拟实现登录,并抓取一些需要用户账号登录以后才能查看的数据.具体实现的流程如下(个人总结): 1. 首先需要对相应的登录页面的html源代码进行分析,获得一些必要的信息: ...

  2. PHP获取cookie、Token、模拟登录、抓取数据、解析生成json

    本文介绍使用PHP获取cookie,获取Token.以及模拟登录.然后抓取数据.最后解析生成json的的过程. 0. 设置Cookie路径 set_time_limit(0); //使用的cookie ...

  3. Java模拟登录系统抓取内容【转载】

    没有看考勤的习惯,导致我的一天班白上了,都是钱啊,系统也不发个邮件通知下....     为了避免以后还有类似状况特别写了个java模拟登录抓取考勤内容的方法(部分代码来自网络),希望有人修改后也可以 ...

  4. 基于puppeteer模拟登录抓取页面

    关于热图 在网站分析行业中,网站热图能够很好的反应用户在网站的操作行为,具体分析用户的喜好,对网站进行针对性的优化,一个热图的例子(来源于ptengine) 上图中能很清晰的看到用户关注点在那,我们不 ...

  5. 好用的 curl 抓取 页面的封装函数

    由于经常使用php curl 抓取页面的内容,在此mark 平时自己封装的 curl函数,(其实 现在也开始用 Python 来爬了~ ^-^) /** * 封装curl方法 * @author Fr ...

  6. curl抓取页面时遇到重定向的解决方法

    用php的curl抓取网页遇到了问题,为阐述方便,将代码简化如下: <?php function curlGet($url) { $ch = curl_init(); curl_setopt($ ...

  7. PHP使用CURL抓取页面

    cURL的基本原理 curl是利用URL语法在命令行方式下工作的开源文件传输工具,他能够从互联网上获得各种各样的网络资源.简单来说,curl就是抓取页面的升级版. <?php //1.初始化,创 ...

  8. curl怎么模拟登录进行采集

    前几天公司需要模拟登录,从网上找了一下代码,结合谷歌浏览器,进行模拟账号密码进行登录 用谷歌浏览器进行抓包操作,获得登录用参数, 下面上干货: <?php /** * 主要获取登录成功的cook ...

  9. 搭建谷歌浏览器无头模式抓取页面服务,laravel->php->python->docker !!!

    背景: 公司管理系统需要获取企业微信页面的配置参数如企业名.logo.人数等信息并操作,来隐藏相关敏感信息并自定义简化企业号配置流程 第一版已经实现了扫码登录获取cookie,使用该cookie就能获 ...

随机推荐

  1. HttpClient调用doGet、doPost、JSON传参及获得返回值

    调用 doPost:map传参 Map<String,Object> map = new HashMap<>(); map.put("test"," ...

  2. SQL 练习12

    查询和" 01 "号的同学学习的课程 完全相同的其他同学的信息 分析 如果某同学学的某一个课程和01同学所学的课程有对应,那么子查询返回false. 如果没有对应,子查询返回tru ...

  3. spring cloud alibaba版本选择

    https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明 Spring Cloud Version Spring Cloud Version ...

  4. flutter中将widget转为base64

    flutter中可以通过RepaintBoundary widget中的toImage方法将页面中的widget转为base64. 如何使用? 首先要在全局定义一个global key,分配给Repa ...

  5. javaWeb常用面试题

    JDBC JDBC访问数据库的基本步骤是什么? 加载驱动 通过DriverManager对象获取连接对象Connection 通过连接对象获取会话,有2种方式Statement.PreparedSta ...

  6. vue 实现 leaflet的测绘,测距,测面

    参考1:https://blog.csdn.net/lonly_maple/article/details/83658608 参考2:https://blog.csdn.net/xtfge0915/a ...

  7. Redis缓存雪崩、缓存穿透、热点key

    转载自  https://blog.csdn.net/wang0112233/article/details/79558612 https://www.sohu.com/a/230787856_231 ...

  8. ubuntu编译安装python3.6.5

    去官网下载安装包放到~/software/   下 1更新软件库 sudo apt-get update 2安装相应的开发库 sudo apt-get install zlib1g-dev libbz ...

  9. mzy,struts学习(一)

    大家都在讲struts已经过时了,现在都是前后台分离,没有必要去学一个淘汰的框架,但是怎么讲呢?我觉得,struts能够流行那么多年,肯定有它的原因,肯定有很多优秀和好的地方,有一个指导过我的人给我讲 ...

  10. docker安装与配置redis详细过程

    注:大鸟飞过,这只是简单搭建,能快速运用而已!! 第一步 pull redis 命令:docker pull redis 第二步 创建redis管理目录,方便后期管理 命令: mkdir /data/ ...