php后台“爬虫”模拟登录第三方系统(一)---cURL的介绍

原创 2015年11月20日 13:00:57

一.相关知识介绍

在服务器后台使用爬虫对第三方进行模拟登录,登录后可进行数据收集。也可以作为第三方登录,用处之多,我便不做细讲。
所具备的的知识:
1.curl知识
2.session和cookie相关知识
3.正则表达式的使用
分析的工具:
Fiddler4 抓包工具
这里写图片描述

二.php cURL函数

PHP支持libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成) HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

初始化一个新的会话

curl_init([ string $url = NULL ]) 
初始化一个新的会话并返回一个cURL句柄,如果设置了$url CURLOPT_URL则  会设置成这个值,也可以使用curl_setopt()函数自己设置

设置一个cURL传输选项

curl_setopt(resource $ch,int $option,mixed $value )
$ch 是curl_init()返回的句柄
$option 需要设置的CURLOPT_XXX选项
$value$option选项赋值
mixed 说明一个参数可以接受多种不同的参数,但不一定所有

$option的参数

参数 选项值 作用
CURLOPT_HEADER 1 把包头包含在输出中
CURLOPT_NOBODY 1 输出中包含body部分
CURLOPT_RETURNTRANSFER 1 如果成功只将结果返回,不自动输出
CURLOPT_INFILESIZE 1 这个选项告诉php你上传的文件大小
CURLOPT_UPLOAD 1 让php为上传做准备
CURLOPT_POST 1 让PHP做一个正规的http POST
CURLOPT_POSTFIELDS 需要post的值 传递一个作为HTTP POST操作的所有数据的字符串
CURLOPT_COOKIEFILE 文件路径 传递包含cookie数据的文件的名称的字符串
CURLOPT_COOKIE cookie字符串 传递一个包含HTTP cookie的头连接
CURLOPT_REFERER 多为一个网址字符串 在HTTP请求中包含一个’referer’头的字符串,(可以用来伪造请求来源)
CURLOPT_FOLLOWLOCALTION 非零值 设置重定位URL,抓取跳转后的页面(能很好解决网页重定向问题)
CURLOPT_MAXREDIRS 最大允许重定向数值 指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的

执行一个cURL会话

mixed curl_exec(resource $ch) 执行给定的cURL会话
$ch 为curl_init()返回的句柄

关闭一个cURL会话

void curl_close(resource $ch)

其他$option参数和函数可查看文档,不一一列出http://php.net/manual/zh/book.curl.php

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://baidu.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$str = curl_exec($ch);
file_put_contents("demo13.txt", $str);
curl_close($ch);

下面是输出结果
这里写图片描述

注意:

在新浪云sae中,它不支持本地IO操作,所以不能使用CURLOPT_COOKIEFILE
在阿里云ace中,不能使用CURLOPT_FOLLOWLOCATION

个人博客:http://www.javaknowledge.cn/?p=55

相关文章推荐

php简单爬虫使用登录账号密码爬取列表(爬虫二篇)

php简单爬虫使用登录账号密码爬取列表关于思路1.定义一个变量$data用来存放你想爬取网站的登录账号和密码以及是否‘记住密码’,此篇我以博客园为例 $data='input1=Dco4FpN...

php后台“爬虫”模拟登录第三方系统(三)---模拟登录学校正方系统

cookie维持客户端和服务器端的交互Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站...
  • liu_c_y
  • liu_c_y
  • 2015年11月21日 01:35
  • 6615

【CURL】模拟登录网站并获取用户信息

模拟登录网站并获取用户信息前言这次来做的是通过代码的方式,模拟登录秒拍官网,获取登录用户的信息。前后端分离本文的标题是CURL,传统的网站是PHP代码直接渲染项目视图,通过表单提交到控制器直接进行数据...

网页抓取:PHP实现网页爬虫方式小结

抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐。LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单。 ...

PHP CURL模拟登录 获取数据

使用了curl 模拟登录 测试了公司网站 代码记录下来//模拟登录方法 function login_post($url,$cookie,$post){ $curl = curl_init();...

PHP curl 模拟登录并获取数据

cURL 是一个功能强大的PHP库,使用PHP的cURL库可以简单和有效地抓取网页并采集内容,设置cookie完成模拟登录网页,curl提供了丰富的函数,开发者可以从PHP手册中获取更多关于cURL信...

php后台“爬虫”模拟登录第三方系统(二)---正则表达式的介绍

使用cURL抓取到页面的数据是html 字符串 ,需要用正则表达式进行分割,存储到数组等地方。下面简单介绍一下php中的正则表达式。正则表达式的概述正则表达式(Regular expression,简...
  • liu_c_y
  • liu_c_y
  • 2015年11月20日 22:12
  • 1477

网页爬虫-用PHP的拓展库curl实现模拟登录慕课网

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕...

使用PHP-curl获取验证码并模拟登录教务系统

首先说一下这篇文章的需求,当我们在一些没有提供验证接口的系统中,需要验证用户身份的时候,就可能需要用户登录当前系统,从而确定该用户是当前系统的合法用户,校园的教务系统就是一个典型的例子,我们通过学生自...

PHP的curl带验证码模拟登陆学校的教务系统(验证码已被自动识别,不需要输入)

用PHP的curl模拟登录教务系统的简单实现
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php后台“爬虫”模拟登录第三方系统(一)---cURL的介绍
举报原因:
原因补充:

(最多只允许输入30个字)