京东的详情页和列表页 2019/10/18

2019年10月27日 21:56:48阅读数:584博客 / 西门吃雪 / 第8期前端开发

<?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;

}

?>

运行效果图

QQ截图20191027215320.jpg

QQ截图20191027215345.jpg

总结

说实话我感觉我还是对爬虫不是很理解暂时只能这样了.不过通过项目也许会好一点。只是大致理解了爬虫但是真正实战我估计我会慌的一笔

批改状态:合格

老师批语:虽然现在封装好的这类工具很多, 但掌握原始的用法 ,还是很重要

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • 博主信息
    西门吃雪
    博文
    26
    粉丝
    0
    评论
    3
    访问量
    16003
    积分:0
    P豆:60