采集HTTP与HTTPS

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS

采集工具:curl()

单纯的我就列出我的代码:(php要有curl与pdo拓展)
正则用到的东西 U(贪婪) i (表示不区分大小写) s(表示将字符串视为单行来匹配) [\s\S]+(表示多个或者一个换行) .*(表示匹配) (.*)(表示你要获取的匹配数据)
Http:

  <?php 
          header("content-type:text/html;charset=utf-8");
          $ch=curl_init();
          curl_setopt($ch,CURLOPT_URL,"http://www.7k7k.com/");//在这里插入代码片
          curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//这就能获取页面数据
          $res=curl_exec($ch);// 抓取URL并把它传递给浏览器
          // 关闭cURL资源,并且释放系统资源
         curl_close($ch);
        //正则表达式(1.开头有单引和#2.要采集不一样的地方用.*表示,你要采集的用(.*)表示3.有换行你用[\s\S]+表示4.最后用Uis和单引)
          $path = '#<li><a href=".*" title=".*"><img lz_src="(.*)" class="pic" width="76" height="77" alt=".*"><span class="ui-li-name">(.*)</span></a></li>#Uis';
          //正则匹配你要的数据
          preg_match_all($path,$res,$arr);
          //var_dump($arr);  
          $img = $arr[1];
          $name = $arr[2];
          $pdo = new PDO("mysql:host=127.0.0.1;dbname=zzr","root","root");
          for ($i=1; $i<=count($img); $i++) { 
          	$sql = "insert into `ce` (`img`,`name`) values ('$img[$i]','$name[$i]')";
          	$res = $pdo->exec($sql);
          }
  
     ?>

Https:

<?php
   header("content-type:text/html;charset=utf-8");
     $url = "https://blog.51cto.com/artcommend/60";
           $ch = curl_init();
           curl_setopt($ch, CURLOPT_URL, $url);
           curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);//除去https里面的s
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           $data=curl_exec($ch);
           curl_close($ch);
           $path = '#</div>[\s\S]+<a href=".*" class="name fl" target="_blank">(.*)</a>[\s\S]+<p href="javascript:;" class="time fl">.*</p>[\s\S]+<p class="zan fr" type="1" blog_id=".*">.*</p>[\s\S]+<div class="clear"></div>[\s\S]+</div>[\s\S]+<a class="tit*" href=".*" target="_blank">(.*)<span class=".*">.*</span></a>[\s\S]+<div class="con">(.*)</div>[\S\s]+<div class="bot">[\S\s]+<span class="more">.*<i></i></span>[\S\s]+<span>.*</span>#Uis';
           preg_match_all($path,$data,$arr);
           $name=$arr[1];
           $biao=$arr[2];
           $rong=$arr[3];
            $pdo = new PDO("mysql:host=127.0.0.1;dbname=zzr","root","root");
          for ($i=1; $i<=count($img); $i++) { 
          	$sql = "insert into cai (`name`,`biao`,`rong`) VALUES ('$name[$i]','$biao[$i]','$rong[$i]')";
          	$res = $pdo->exec($sql);
          }

这就是简单的采集可能配不上你牛逼的代码但是我都说了这只是一个简单的采集。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值