php使用CURL进行模拟登录采集数据
<?php
$cookie_path = './'; //设置cookie保存路径
//-----登录要提交的表单数据---------------
$vars['username'] = '张三';
$vars['pwd'] = '123';
//-------------------------------------
$method_post = true;
//登录提交的url地址(表单中的action的绝对地址)
$url = 'http://****.com/login';
//----------------------------
$ch = curl_init();
$params[CURLOPT_URL] = $url; //请求url地址
$params[CURLOPT_HEADER] = true; //是否返回响应头信息
$params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
$params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
$params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
$postfields = '';
foreach ($vars as $key => $value){
$postfields .= urlencode($key) . '=' . urlencode($value) . '&';
}
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $postfields;
//判断是否有cookie,有的话直接使用
if (isset($_COOKIE['cookie_jar']) && ($_COOKIE['cookie_jar'] || is_file($_COOKIE['cookie_jar'])))
{
$params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //这里判断cookie
}
else
{
$cookie_jar = tempnam($cookie_path, 'cookie'); //产生一个cookie文件
$params[CURLOPT_COOKIEJAR] = $cookie_jar; //写入cookie信息
setcookie('cookie_jar', $cookie_jar); //保存cookie路径
}
curl_setopt_array($ch, $params); //传入curl参数
$content = curl_exec($ch); //执行
echo '';
echo $content; //输出登录结果
/*
//---------登录成功后再次请求其他地址,如果有多个可以循环执行---------
echo '';
$nexturl = 'http://****.com/test';
$params[CURLOPT_URL] = $nexturl;
$params[CURLOPT_POSTFIELDS] = '';
curl_setopt_array($ch, $params); //传入curl参数
$content = curl_exec($ch); //执行
echo $content; //输出请求结果
//-------------------------------------------------
*/
curl_close($ch); //关闭连接
php使用CURL进行模拟登录采集数据的更多相关文章
- PHP cURL实现模拟登录与采集使用方法详解教程
来源:http://www.zjmainstay.cn/php-curl 本文将通过案例,整合浏览器工具与PHP程序,教你如何让数据 唾手可得 . 对于做过数据采集的人来说,cURL一定不会陌生.虽然 ...
- php中CURL实现模拟登录并采集数据
在php中采集我们用的是简单的采集方式(例如file_get_contents)就无法做到了,但是如果想模拟登录用户并采集利用它就没办法了,我们可利用CURL函数来实现模拟登录并采集数据 这里要说一些 ...
- curl怎么模拟登录进行采集
前几天公司需要模拟登录,从网上找了一下代码,结合谷歌浏览器,进行模拟账号密码进行登录 用谷歌浏览器进行抓包操作,获得登录用参数, 下面上干货: <?php /** * 主要获取登录成功的cook ...
- 使用CURL进行模拟登录
在信息采集的时候,要采集的站点可能需要登录,这样使用简单的采集方式(例如file_get_contents)就无法做到了,我们可以利用PHP的CURL扩展库来进行模拟登录,下面给出代码示例: < ...
- 22.天眼查cookie模拟登陆采集数据
通过账号登录获取cookies,模拟登录(前提有天眼查账号),会员账号可查看5000家,普通只是100家,同时也要设置一定的反爬措施以防账号被封.拿有权限的账号去获取cookies,去访问页面信息,不 ...
- CURL的模拟登录和抓取页面
<?php $curl = curl_init();// 初始化 // 准备提交的表单数据之账号和密码.(这个是根据表单选项来的) $data = "_username=6049892 ...
- PHP cURL应用实现模拟登录与采集使用方法详解
对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程链接的数据,但是它的可控制性太差了,对于各种复杂情况的采集情景,file_get_co ...
- 模拟登录神器之PHP基于cURL实现自动模拟登录类
一.构思 从Firefox浏览器拷贝cURL命令(初始页.提交.提交后) 自动分析curl形成模拟登录代码 默认参数:ssl/302/gzip 二.实现 接口 (一)根据curl信息执行并解析结果 p ...
- php curl采集数据问题汇总
1. 使用curl获取网页数据提示: "curl: (6) Could not resolve host: xxx.xxx.com ; Name or service not known&q ...
随机推荐
- Ribbon原理与应用
一.定义 Ribbon是请求的负载均衡器,它为我们提供了几种负载均衡算法:轮询.随机等. 二.配置 spring: cloud: loadbalancer: retry: enabled: true ...
- mybatis(CRUD)
3.mybatis(CRUD) 有了mybatis,我们要对数据库进行增删改查只需要操作接口和mapper.xml文件,然后进行测试就可以了. 实例代码如下: 接口 public interface ...
- day 17 i++优先级大于 *i
(1).有下列定义语句,int *p[4];以下选项中与此语句等价的是[C] (A).int p[4]; (B).int **P; (C).int *(p[4]); (D).int (*p)[4]; ...
- linux 安装 Logtash 同步mysql数据到Elasticsearch
官网下载Logtash 离线安装包 下载地址 https://www.elastic.co/cn/downloads/logstash 需要注意版本与es 对应 新建配置文件 新建文件夹 mkdir ...
- leetcode 718. 最长重复子数组
问题描述 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 示例: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出:3 解释: 长度最长的公共子数 ...
- 【解决了一个小问题】golang gin框架中的模板,让模板中的参数不要做HTML转义
代码中使用了类似的方式来向模板填充参数: c.HTML(200, "list.html", gin.H{"data":builder.String()}) 模板 ...
- Python 根据id生成唯一码
Python 根据id生成唯一码 最近业务中遇到需要分享某个文案,复制文案打开APP需要提取文案中包含的id,但又不想明文暴露id,所以需要对id进行加密,很想让前端来做,可惜多个前端协调起来不方便( ...
- golang中math常见数据数学运算
package main import ( "fmt" "math" ) func main() { fmt.Println(math.Abs(-19)) // ...
- IoC容器-Bean管理注解方式(完全注解开发)
完全注解开发 (1)创建配置类,替代xml配置文件 (2)编写测试类 在实际中一般用springboot做
- Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
转:https://m.sogou.com/web/id=4c468b90-3f64-418c-acf8-990b5fe2a757/keyword=python%20os%E6%A8%A1%E5%9D ...