任务:获取本页所有商品的图片
第一步,我们需要一个目标页面。
$url = 'https://s.hc360.com/?w=%E6%B0%B4%E6%9D%AF&mc=seller'; 随便找的一个网页。
第二、取它完整的一个标签框,代表它独立的一个个体。
-
发现属于它的个体是 <li> 标签
-
此时发现很多不必要的各种标签内容,我们只留下我们需要的内容 --------data-original(图片载体)
-
(为啥不是src呢。因为它加载方式的原因)
-
然后其他都用 .*? 代替了。
$str = "grid-list.*?picmid pRel.*?<img.*?data-original="(.*?)".*?</li>";
第一个class:grid-list 第二个class:picmid pRel ,然后定位到自己想要的 。
上代码
function curl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0);// 为 1 时-启用-会将头文件的信息作为数据流输出 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//https 不验证信息 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//https 不验证信息 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); //执行curl会话 curl_close($ch); //关闭curl会话 return $data; }
$url = 'https://s.hc360.com/?w=%E6%B0%B4%E6%9D%AF&mc=seller'; $data = curl($url); $data = preg_replace("/[\t\n\r]+/","",$data); $strPreg = '#grid-list.*?picmid pRel.*?<img.*?data-original="(.*?)".*?</li>#'; preg_match_all($strPreg,$data,$arr); echo '<xmp>'; print_r($arr);
然后就是取出的数据