<!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. guid正则表达

    a-fA-F0-9 加上下划线 _ 可以用 \w 来代替. ^\w{8}-(\w{4}-){3}\w{12}$ 如果不可以用下划线, 0-9 用 \d 代替 a-fA-F 就用其中一个 a-f,然后匹 ...

  2. Orchard源码分析(1):Orchard架构

      本文主要参考官方文档"How Orchard works"以及Orchardch上的翻译.   源码分析应该做到庖丁解牛,而不是以管窥豹或瞎子摸象.所以先对Orchard架构有 ...

  3. QT入门

    QT += core gui widgets //引入需要用到的库 qDebug()<<"t="<<t<<QTime::currentTime( ...

  4. Java数据库连接池封装与用法

    Java数据库连接池封装与用法 修改于抄袭版本,那货写的有点BUG,两个类,一个用法 ConnectionPool类: package com.vl.sql; import java.sql.Conn ...

  5. 如何判断一个变量是否是utf-8

    //判断传入的字符是否是utf-8  function is_utf8($word){   if (preg_match("/^([".chr(228)."-" ...

  6. OB函数

    ob_start                    打开输出控制缓冲 ob_get_contents        返回输出缓冲区内容 ob_clean                   清空( ...

  7. 8-Highcharts曲线图之对数直线图

    <!DOCTYPE> <html lang='en'> <head> <title>8-Highcharts曲线图之对数直线图</title> ...

  8. 1、Java背景、标示符、运算符、转义字符

    一.Java平台: 1.Java的创建:1991年由SUN公司创建. 2.Java的特点:面向对象.可移植性.多线程.分布式.可靠.安全. 3.Java的三个架构:JavaEE.JavaSElect. ...

  9. nyoj 4 ASCII码排序 java

    java输入字符:1.String s=sc.next(); 2.char a=s.charAt(0); 注意:package   java 中提交不能带package java代码: import ...

  10. <s:url>指向的Action只执行一次,清除浏览器缓存文件后又可执行一次。

    Action中的方法仅为静态变量赋值,而其他访问数据库的Action可以被重复执行. 起初判断可能是静态变量的内存机制导致不能重复执行. 然后发现清楚浏览器缓存文件后又可以执行一次了,看来原因在Jsp ...