<?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. 拦截器HandlerInterceptorAdapter的postHandle和afterCompletion无法获取response返回值问题

    缘起 有一个需求,在进入controller之前验证调用次数是否超过限制,在响应之后判断是否正常返回,对调用次数进行+1,发现带@RestController的类和带@ResponseBody的方法在 ...

  2. 手把手和你一起实现一个Web框架实战——EzWeb框架(三)[Go语言笔记]Go项目实战

    手把手和你一起实现一个Web框架实战--EzWeb框架(三)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 本篇代码,请选择demo3 这一篇文章 ...

  3. Redis如何实现分布式锁

    今天我们来聊一聊分布式锁的那些事. 相信大家对锁已经不陌生了,我们在多线程环境中,如果需要对同一个资源进行操作,为了避免数据不一致,我们需要在操作共享资源之前进行加锁操作.在计算机科学中,锁(lock ...

  4. Java MyEclipse:The type java.lang.CharSequence cannot be resolved. It is indirectly referen

    从svn上下载项目后配置weblogic后启动报错: myeclipse  The type java.lang.CharSequence cannot be resolved. It is indi ...

  5. Abp vNext 基础篇丨领域构建

    介绍 我们将通过例⼦介绍和解释⼀些显式规则.在实现领域驱动设计时,应该遵循这些规则并将其应⽤到解决⽅案中. 领域划分 首先我们先对比下Blog.Core和本次重构设计上的偏差,可以看到多了一个博客管理 ...

  6. Linux搭建Ldap服务器

    一,服务器安装 yum install -y openldap openldap-clients openldap-servers migrationtools 二,配置ldap服务器 2.1配置ld ...

  7. windows笔记-在可执行文件或DLL的多个实例之间共享静态数据

    全局数据和静态数据不能被同一个. exe或DLL文件的多个映像共享,这是个安全的默认设置.但是,在某些情况下,让一个. exe文件的多个映像共享一个变量的实例是非常有用和方便的. 每个. exe或DL ...

  8. web API 的异常处理

    实现自定义的异常处理类 --------------------------------------------------------------------- public class MyExc ...

  9. jQuery中的基本过滤选择器(四、三)::first、:last、:not() ... ...

    <!DOCTYPE html> <html> <head> <title>基本过滤选择器</title> <meta http-equ ...

  10. win系统打不开CHM文件(例如JDK的API)

    打开文件乱码,打开时弹出乱码 前提说明,存放路径不得有中文,文件名也不能有中文 检查下面三个文件:    hh.exe文件放置电脑 C:\Windows目录下:     hhctrl.ocx ,its ...