php几种抓取网页的方法推荐
几种抓取网页的方法推荐使用curl和file_get_contents
实际上任何能够模拟http协议的方法都可以实现网页抓取,几个函数本质上都是使用socket模拟的http协议,这里给出几种简单的实现方法
<?php
@header("Content-Type: text/html; charset=UTF-8");
//不限执行时间
set_time_limit(0);
error_reporting(0);
//使用curl抓取网页
function get_content($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书主要解决https抓取不到的问题
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
$rs = curl_exec($ch); //执行cURL抓取页面内容
curl_close($ch);
return $rs;
}
//使用fopen 抓取网页
function get($url){
$fp=fopen($url,"rb");
if($fp){
while(!feof($fp)){
$con.=fread($fp, 1024);
}
fclose($fp);
}
return $con;
}
//使用filegetcontents抓取网页
file_get_contents("http://www.shibangchina.com/");
//$content=get_content("http://www.shibangchina.com/");
$content=get("http://www.shibangchina.com/");
echo $content;
?>