cURL实践

本文介绍了使用cURL进行网页爬虫的实现,包括抓取和替换网页内容,调用WebService获取天气信息,以及涉及FTP服务器的文件下载与上传操作。通过cURL实践,学习了HTTPS资源的下载以及CSDN博客页面的下载。
摘要由CSDN通过智能技术生成

cURL实战来源:PHP中的数据传输神器cURL-慕课网 (imooc.com)

 

碎碎念:

这部分知识学的不好,云里雾里的,需要实践。FTP服务器也未搭建。

cURL官方文档:
https://www.php.net/manual/zh/book.curl.php

cURL实战:

test1

(1)用cURL制作一个简单的网页爬虫(2)用cURL抓取网页信息并替换部分内容

test2

(1)用cURL调用WebService获取天气信息(2)用cURL调用WebService获取天气信息_soap(貌似有问题)

 test3

(1)登录CSDN并下载我的博客页面(2)自定义实现页面链接跳转抓取

test4

(1)从FTP服务器下载一个文件到本地(2)把本地文件上传到FTP服务器上

test5

(1)下载网络上面的一个HTTPS的资源


test1

(1)用cURL制作一个简单的网页爬虫
(2)用cURL抓取网页信息并替换部分内容

<?php
/**
 * test1
 * 1、用cURL制作一个简单的网页爬虫
 */
$curl=curl_init("http://www.baidu.com");//初始化cURL
curl_exec($curl);//执行cURL
curl_close($curl);//关闭cURL

/**
 * test1
 * 2、用cURL抓取网页信息并替换部分内容
 */
$curlobj=curl_init();//初始化
curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");//设置访问的网页
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);//执行之后以文件流的形式返回,而不是直接输出。
$output=curl_exec($curlobj);//执行
curl_close($curlobj);//关闭cURL
echo str_replace("百度", "屌丝", $output);//把网页中的“百度”替换成“屌丝”后输出

结果:

test2

(1)用cURL调用WebService获取天气信息
(2)用cURL调用WebService获取天气信息_soap(貌似有问题)

<?php
/**
 * test2
 * 1、用cURL调用WebService获取天气信息
 */
$data='theCityName=泰州';
$httpHeader = array("application/x-www-form-urlencoded; charset=utf-8","Content-length: ".strlen($data));
$curlobj=curl_init();//初始化
curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");//设置访问的网页
curl_setopt($curlobj, CURLOPT_HEADER, 0);//参数为0表示不输出响应消息头,为1表示返回信息中包含响应消息头。
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);//参数为1,设定curl_exec()函数将响应结果返回,而不是直接输出。(即参数为1表示$html,为0表示echo $html)
//POST设置
curl_setopt($curlobj, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);//在HTTP请求中包含一个”user-agent”头的字符串。//报错:“未将对象引用设置到对象的实例”,则添加这一句。
curl_setopt($curlobj, CURLOPT_POST, 1);//通过POST提交数据
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);//设置post提交的数据
curl_setopt($curlobj, CURLOPT_HTTPHEADER, $httpHeader);//设置头信息

$rtn=curl_exec($curlobj);//执行
//curl_errno — 返回一个包含当前会话错误信息的数字编号
//curl_error — 返回一个包含当前会话错误信息的字符串
if(!curl_errno($curlobj)){
    echo $rtn;
}else{
    echo 'Curl error:&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值