<?php
$url = 'https://diannao.jd.com';
$ret = curl($url);
$params = '/^/';
$preg = preg_match($params,$ret,$matches);
var_dump($preg);
$content = $matches[1].'</div>';
$content = $matches[1].'</div>';
// 把来源网站的图片标识,替换为HTML标识
$content = preg_replace('/data-original/','src',$content);
$content = preg_replace('/<div id="shortcut-2014">/','src',$content);
print_r($matches);
print_r($ret);
// 通过curl请求接口
function curl($url, $params = false, $ispost = 0)
{
header('content-type: text/html; charset=utf-8');
$httpInfo = array();
$ch = curl_init();
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true); // 发送一个常规的Post请求
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); // Post提交的数据包
curl_setopt($ch, CURLOPT_URL, $url); // 设置URL
} else {
// GET请求,组装url
if ($params) {
$url = $url . '?';
foreach ($params as $k => $v) {
$url = $url . $k . '=' . $v . '&';
}
curl_setopt($ch, CURLOPT_URL, $url);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);//爬取重定向页面
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);//自动设置Referer,防止盗链
curl_setopt($ch, CURLOPT_HEADER, 0);//显示放回Header区域内容
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);//对证书来源的检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);//从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 要求结果保存到字符串中还是输出到屏幕上
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // 默认值,让 cURL 自己判断使用哪个版本。 (强制使用 HTTP/1.1)。
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // 在尝试连接时等待的秒数。设置为0,则无限等待。
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($ch, CURLOPT_USERAGENT, 'JuheData'); // 在HTTP请求中包含一个"User-Agent:"头的字符串
$html = curl_exec($ch); // 运行Curl,请求URL ,把结果复制给变量
if (curl_error($ch)) {
echo 'Error' . curl_error($curl); // 捕抓异常
}
curl_close($ch); // 关闭cURL连接
return $html;
}
?>
运行效果图
总结
说实话我感觉我还是对爬虫不是很理解暂时只能这样了.不过通过项目也许会好一点。只是大致理解了爬虫但是真正实战我估计我会慌的一笔