curl抓取网页操作

1.什么是CURL

curl是利用URL语法在命令行方式下工作的开源文件传输工具,他能够从互联网上获得各种各样的网络资源。简单来说,curl就是抓取页面的升级版。

2.使用前准备

打开php.ini

查询curl模块有没有打开。

extension=php_curl.dll

3. 简单的使用curl

3.1抓取百度页面

简版

<?php

    $curl=curl_init("http://www.baidu.com");

 //创建curl资源  

    curl_exec($curl);                                           

//传递给浏览器

    curl_close($curl);                                            

//关闭curl释放资源

?>

完整版

<?php

//1.初始化,创建一个新cURL资源

 $ch = curl_init();

//2.设置URL和相应的选项

 curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com/");

//CURLOPT_HEADER : 如果你想把一个头包含在输出中,设置这个选项为一个非零值。

curl_setopt($ch, CURLOPT_HEADER, 0);

//3.抓取URL并把它传递给浏览器

 curl_exec($ch);

//4.关闭cURL资源,并且释放系统资源

 curl_close($ch);

?>

 

3.2替换页面信息

 

<?php

$curlobj = curl_init();          

// 初始化

curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");       

// 设置访问网页的URL

curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);         

// 执行之后不直接打印出来

$output=curl_exec($curlobj);   

// 执行

curl_close($curlobj);       

// 关闭cURL

echo str_replace("百度","php",$output);

?>

curl抓取网页操作1011.png

curl抓取网页操作1014.png

3.3调用WebService获取天气

<?php

header("Content-Type:text/html;   charset=utf-8");

$data = 'theCityName=北京';

$curlobj = curl_init();

curl_setopt($curlobj,CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");

curl_setopt($curlobj, CURLOPT_USERAGENT, "user-agent:Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0");

curl_setopt($curlobj, CURLOPT_HEADER, 0);          

//启用时会将头文件的信息作为数据流输出。这里不启用

curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);  

//如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE

curl_setopt($curlobj, CURLOPT_POST, 1);            

//如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。

curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);  

//需要POST的数据

curl_setopt($curlobj,CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded;charset=utf-8", "Content-length: ".strlen($data)));

$rtn = curl_exec($curlobj);

if(!curl_errno($curlobj)){

    // $info = curl_getinfo($curlobj);

    // print_r($info);

    echo $rtn;

} else {

    echo 'Curl error: ' . curl_error($curlobj);

}

curl_close($curlobj);

?>

curl抓取网页操作2116.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用PHP的curl库可以方便地实现网页抓取功能。通过curl库,我们可以发送HTTP请求并获取服务器响应的内容。以下是一个使用php curl抓取页面所有链接的方法: 1. 创建一个curl资源句柄: ``` $ch = curl_init(); ``` 2. 设置curl选项,包括目标URL、请求头信息和其他参数: ``` curl_setopt($ch, CURLOPT_URL, "目标URL"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4"); ``` 其中,`CURLOPT_URL`用于设置目标URL,`CURLOPT_RETURNTRANSFER`用于设置是否将抓取的内容作为字符串返回,`CURLOPT_FOLLOWLOCATION`用于设置是否跟随重定向,`CURLOPT_USERAGENT`用于设置用户代理。 3. 执行curl请求并获取响应内容: ``` $response = curl_exec($ch); ``` 4. 使用正则表达式或其他方法从响应内容中提取所有链接: ``` preg_match_all('/<a\s+href=["\'](.*?)["\']/', $response, $matches); $links = $matches<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法](https://download.csdn.net/download/weixin_38594687/13020038)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [PHP curl实现抓取302跳转后页面的示例](https://download.csdn.net/download/weixin_38500572/13045232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [php中curl抓取页面](https://blog.csdn.net/weixin_27727467/article/details/115831006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值