snoopy php网页抓取工具(做抓取前,记得把php.ini中的max_execution)

优采云 发布时间: 2022-01-31 22:02

  snoopy php网页抓取工具(做抓取前,记得把php.ini中的max_execution)

  在做爬取之前,记得把php.ini中的max_execution_time设置大一点,否则会报错。

  一、 使用 Snoopy.class.php 抓取页面

  一个很可爱的班级名字。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等。

  1)我要抓取网站的一个列表页的内容,我要抓取的是全国医院信息内容,如下图:

  2)我自然是复制了URL地址,用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,用于后面的分析。

  $snoopy=new Snoopy();

//医院list页面

for($i = 1; $i fetch($url);

file_put_contents("web/page/$i.html", $snoopy->results);

}

echo 'success';

  3)很奇怪,返回的内容不是国家内容,而是上海的相关内容

  4) 后来我怀疑里面可能设置了一个cookie,然后用firebug查了一下,有一个惊人的内幕

  5)请求中也放入了cookie的值,加上了一个设置语句$snoopy->cookies["_area_"],情况就大不一样了,顺利返回全国信息。

  $snoopy=new Snoopy();

//医院list页面

$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限™"}';

for($i = 1; $i results;

}

  2)使用phpQuery获取节点信息,如下图DOM结构:

  使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。

  for($i = 1; $i attr('href')); //医院详情

}

}

  3)根据读取的URL地址列表,抓取指定页面。

  $detailIndex = 1;

for($i = 1; $i results);

$detailIndex++;

}

}

  FQ工具下载:

  克服障碍.rar

  演示下载:

  关于 Snoopy 类的一些注意事项:

  类方法

  获取($URI)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线