file_get_get_contents与Curl普通采集

curl和file_get_get_contents区别

 curl 效率比file_get_contents 高很多
 curl 的复杂程度高
 curl 支持的方式比较 (get、post/文件上传等) file_get_contents只支持get请求

file_get_get_contents采集

    //1.抓取页面
    $url = "http://www.7k7k.com";
    $data = file_get_contents($url);
    //var_dump($data);
    //正则
    // '/<img src="(.+)">/' 正则表达式  $data=>采集的链接  $arr采集的结果
    preg_match_all('/<title>(.+)<\/title>/',$data,$arr);
    echo "<pre>";
    print_r($arr);

在这里插入图片描述






CURL

<?php

    //初始化 curl
    $ch = curl_init();

    //设置请求参数
    curl_setopt($ch,CURLOPT_URL,'http://book.zongheng.com/store.html');
    //不在浏览器直接输出
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);

    //发送请求
    $data=curl_exec($ch);
  
    //关闭
    curl_close($ch);

    //结合正则         //利用正则采集           //$data=>采集的结果  $arr=>正则后的结果
    preg_match_all('/<div class="bookintro">(.+)<\/div>/',$data,$arr);
    //print_r($data);   这是个二维数组

    //二维数组转一维数组   array_merge()数组有相同的字符换键名=》后面的值覆盖前面的值  数组有相同的数字键名 =》依次加到后面
    $result = array_reduce($arr, 'array_merge', array());

    print_r($result);   //输出

    
    //PDO操作 连接数据库
    $dbh = new Pdo ("mysql:host=127.0.0.1;dbname=1708a",'root','root');
    //设置字符集编码
    $dbh->exec('set names utf8');

    //循环写入数据库
    for($i=0;$i<count($result);$i++)
    {   
        $sql = "INSERT INTO title (cont) VALUES ('$result[$i]')";       //
        $data = $dbh->exec($sql);           //执行
    }

    if($data)
    {
        echo  "<script>alert('爬取数据到数据库成功')</script>";
    }else{
        echo "<script>alert('爬取数据到数据库失败');</script>";

    }

     //curl和filr_get_get_contents区别
    //curl 效率比file_get_contents 高很多
    //curl 支持的方式比较 (get、post/文件上传等) file_get_contents只支持get请求
    //curl 的复杂程度高

    ?>

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值