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后台“爬虫”模拟登录第三方系统(三)---模拟登录学校正方系统

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

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

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

php爬虫抓取信息及反爬虫相关

php爬虫首推Curl函数了,先来认识下它。 0x01.curl扩展的安装: 1.确保php子文件夹ext里面有php_curl.dll(一般都有的,一般配置时候会设置环境变量的) 2.将php...
  • u010349417
  • u010349417
  • 2013年11月15日 16:45
  • 3140

php爬虫抓取信息及反爬虫相关

58爬虫了百姓,赶集和58互爬,最后各种信息相同,都是爬虫后的数据库调用,潜规则啊,几家独大还暗中各种攻击,赶驴网的幽默事例我不想多评价。这个时代是砸.钱*养.钱的时代,各种姚晨杨幂葛优,各种地铁公车...
  • wustzbq0713
  • wustzbq0713
  • 2015年05月30日 17:23
  • 1441

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

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

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

  • A9925
  • A9925
  • 2016年03月27日 20:55
  • 2950

PHP网络爬虫之CURL学习

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

php curl网络爬虫简单实例代码

php curl网络爬虫的实例代码
  • weixin_36919815
  • weixin_36919815
  • 2017年06月10日 11:30
  • 560

php爬虫--伪登录

  • 2009年10月10日 17:15
  • 5KB
  • 下载

php爬虫教程(一) 简单的页面抓取

最近朋友抓取点数据,写了几个抓取数据的脚本。 主要功能是,分别抓起x了么,美x,x度外卖的餐厅和菜品数据 ,后期我把代码分享出来。 今天就先说说简单的页面抓取 -------------------...
  • u014017080
  • u014017080
  • 2016年08月30日 15:07
  • 6566
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php后台“爬虫”模拟登录第三方系统(一)---cURL的介绍
举报原因:
原因补充:

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