任务:获取本页所有商品的图片
第一步,我们需要一个目标页面。
$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);
然后就是取出的数据