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...

爬虫学习笔记四、 python爬虫实战,爬取图书馆资料,存储到mysql数据库

以青岛农业大学图书馆为例,用Python写爬虫

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

CURL 爬虫,抓取网页并写入文件

<?php //例子1,简单crul获得网页内容, //01 在命令行cmd、 //02 cd -d D:\wamp\test //03 php -f curl_url.php /*$curl =...
  • A9925
  • A9925
  • 2016-03-27 20:55
  • 1946

PHP网络爬虫之CURL学习

PHP的CURLphp的curl可以实现模拟http的各种请求,这也是php做网络爬虫的基础,也多用于接口api的调用。这个时候有人就要发问了:为什么你特么不用file_get_contents?cu...

php 使用curl模拟登录人人(校内)网的简单实例

http://www.jb51.net/article/86003.htm $login_url = 'http://passport.renren.com/PLogin.do';...

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

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

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

用PHP的curl模拟登录教务系统的简单实现

用phpcurl实现模拟登录带验证码urp教务系统获取成绩

思路:链接登录页,获取验证码和cookie到本地,人工输入验证码,post账号密码验证码,链接成绩页。 先po出代码来,改天再详细修改。 /**  * 模拟登录  */ ...

curl远程获取验证码

<?php $CookieFile=tempnam("./tmep","beast"); if(isset($_GET["img"])){ $url = 'http://www.yto.net....
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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