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);
}
这就是简单的采集可能配不上你牛逼的代码但是我都说了这只是一个简单的采集。