任务:获取本页所有商品的图片

第一步,我们需要一个目标页面。

$url = 'https://s.hc360.com/?w=%E6%B0%B4%E6%9D%AF&mc=seller'; 随便找的一个网页。

 

php简单实现采集

 

第二、取它完整的一个标签框,代表它独立的一个个体。

php简单实现采集

  1. 发现属于它的个体是 <li> 标签

  2. 此时发现很多不必要的各种标签内容,我们只留下我们需要的内容  --------data-original(图片载体)

  3. (为啥不是src呢。因为它加载方式的原因)

  4. 然后其他都用   .*?  代替了。

$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);

然后就是取出的数据

php简单实现采集

 

结束!

相关文章: