<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>模拟登录测试</title>
</head> <body>
<?php
//curl模拟自动登陆认证
$url = "";
$User_Agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0";
$post_data = "muser=***&passwd=***";
$refer="http://***/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); //设置URL
curl_setopt($ch, CURLOPT_HEADER, true); //设置显示响应头
curl_setopt($ch,CURLOPT_USERAGENT,$User_Agent); //设置代理浏览器
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT,5);//超时处理
curl_setopt($ch,CURLOPT_REFERER,$refer); //设置来源网站
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);//设置重定向
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//设置参数
$content = curl_exec($ch); $headArr = explode("\r\n", $content); //解析url
foreach ($headArr as $loop) {
//echo htmlspecialchars($loop)."<br />";
if(strpos($loop, "http://***/default.aspx?id=") !== false){//找到Location
$id = trim(substr($loop, 46));
}
if(strpos($loop, "Set-Cookie") !== false){//找到Cookie
$cookie = trim(substr($loop, 12));
}
}
$rurl="****?id=".$id;
echo "edengUrl:<br>".$rurl;
echo "<br />";
echo "setcookie:<br>".$cookie."<br />";
curl_close($ch); //结果处理
$url = $rurl;
$User_Agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0";
$refer="http://****/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); //设置URL
curl_setopt($ch, CURLOPT_COOKIE, $cookie); //设置cookies
curl_setopt($ch,CURLOPT_USERAGENT,$User_Agent); //设置代理浏览器
curl_setopt($ch, CURLOPT_TIMEOUT,5);//超时处理
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_REFERER,$refer); //设置来源网站
$content = curl_exec($ch); //解析html
echo "<br />";
echo "<br />解析:";
echo "<br />";
$content=strip_tags($content);//去除html标签
echo $content;
echo "<br />";
echo "<br />";
$sk=strpos(trim($content), "当前用户")+28;
$name = trim(substr($content,$sk,9));
$arr=explode(" ",$name);
echo $sk."<br />".$arr[0]."<br />"; curl_close($ch); ?>
</body>
</html>

curl模拟自动登陆&采集网页数据的更多相关文章

  1. API例子:用Python驱动Firefox采集网页数据

    1,引言 本文讲解怎样用Python驱动Firefox浏览器写一个简易的网页数据采集器.开源Python即时网络爬虫项目将与Scrapy(基于twisted的异步网络框架)集成,所以本例将使用Scra ...

  2. Java模拟新浪微博登陆抓取数据

    前言:  兄弟们来了来了,最近有人在问如何模拟新浪微博登陆抓取数据,我听后默默地抽了一口老烟,暗暗的对自己说,老汉是时候该你出场了,所以今天有时间就整理整理,浅谈一二. 首先:  要想登陆新浪微博需要 ...

  3. 用js采集网页数据并插入数据库最快的方法

    今天教大家一个快速采集网站数据的方法,因为太晚了,直接上例子,这里以采集易车网的产品数据为例. 思路:利用js获取网页数据并生成sql命令,执行sql命令把采集的数据插入数据库. 1.用谷歌浏览器或者 ...

  4. [PHP自动化-进阶]001.CURL模拟登录并采集数据

    引言:PHP可以通过libcurl实现模拟登录,提交数据,违法乱纪,烧杀抢虐等等事项. 简单说明一下"libcurl",补一下脑: libcurl目前支持http.https.ft ...

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

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

  6. 通过curl模拟多线程抓取网页(curl_multi_*)

    curl请求多个url,以前都是使用循环来处理.最近发现可以通过curl_multi_*系列函数来模拟多线程.比对一下,发现如果请求的url只有几个,2种方案耗时差不多,但是url比较多,差距就非常明 ...

  7. cURL模拟POST方法提交XML数据并解析

    php编程中会用到xml格式传送数据,这里演示下php以post形式发送xml,服务器接收,并解析xml的过程! post_xml.php源码: <?php header("Conte ...

  8. csharp:正则表达式采集网页数据

    https://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex(v=vs.110).aspx https:/ ...

  9. 采集网页数据---Using Java

    http://www.cnblogs.com/longwu/archive/2011/12/24/2300110.html 1).学习网页数据采集,首先必不可少的是学习java的正则表达式(Regex ...

随机推荐

  1. Java——下拉列表框:JComboBox

    import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import j ...

  2. Maven打包可执行jar

    参考文献:http://blog.csdn.net/xiao__gui/article/details/47341385 方法:使用assembly插件,生成的jar包名为xxx-jar-with-d ...

  3. Linux下开发常用 模拟 Http get和post请求

    1.get请求 curl "http://www.baidu.com"      如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 curl -i "htt ...

  4. 总结CSS面试题目的考察点及常见布局问题整理

    整理网上流传的若干份面试题目,突发奇想,总结关于CSS面试题目的考察点,发现问题大多围绕几个属性和几种题目,水平有限,仅供参考. 写这个博文内心有种莫名奇妙的自我谴责感,实在不应该把面试层叠样式“应试 ...

  5. Vim以及Terminal 配色方案---"Solarized"配色

    linux用户给vim 以及terminal的配色方案---Solarized配色 官网地址:http://ethanschoonover.com/solarized 看这配色:八卦乾坤,赏心悦目,高 ...

  6. xcode

    1: info.plist IOS之Info.plist文件简介 http://www.apkbus.com/android-130240-1-1.html 在Xcode项目中读取plist文件 ht ...

  7. php对uploads文件的处理问题的解决

    解决uploads问题的要点有几点: 参考这篇文章 第一, 在php.ini文件中, 有file_uploads这一节 file_uploads = On ;是否开启文件上传功能, 该功能有很大的安全 ...

  8. Androidstudio的快捷键

    只记忆常用的快捷键. 1,alt+enter导包,抛异常什么的,用来自动修正的 2,Ctrl+alt+V自动补全 3,Alt+Insert 生成代码(如get,set方法,构造函数等) 4,Ctrl+ ...

  9. .Net Core 之 图形验证码

    本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能. 通过测试的系统: Windows 8.1 64bit Ubuntu Server 16.04 LTS 64 ...

  10. Notepad++的插件

    1.4. Notepad++中常用的插件 1.4.1. 插件管理器: Plugin Manager 插件功能:此插件可以帮你管理插件,包括查看当前已经安装的插件有哪些,以及自动帮你下载相应的插件. 插 ...