snoopy php网页抓取工具(做过j2ee或android开发的童鞋,应该或多或少都使用过Apeache的HttpClient类库)
优采云 发布时间: 2022-02-05 01:16snoopy php网页抓取工具(做过j2ee或android开发的童鞋,应该或多或少都使用过Apeache的HttpClient类库)
如果你做过童鞋的j2ee或者android开发,应该多多少少用过Apeache的HttpClient类库。这个类库为我们提供了非常强大的服务端Http请求操作。在开发中使用非常方便。
最近在开发php中,也需要在服务器端发送http请求,然后再处理回客户端。
我google了一下,发现php中有这样一个类库,名字叫httpclient。我很兴奋。看了下官网,发现已经很多年没有更新了,功能好像也有限,很是失望。然后又找到了另一个类库Snoopy,这个类库我不知道,但是网上的反应还不错,所以决定用它。它的 API 使用与 Apache 的 HttpClient 有很大的不同,但仍然非常好用。并且提供了很多特殊用途的方法,比如只能抓取页面中的form表单,或者所有的链接等等。
include \'Snoopy.class.php\';
$snoopy = new Snoopy();
$snoopy->fetch("http://www.baidu.com");
echo $snoopy->results;
以上几行代码就可以轻松爬取百度的页面。
当然,当需要发送post表单时,可以使用submit方法提交数据。
同时还提供了请求头、响应头以及cookies的相关操作功能,功能非常强大。
\n";} else {echo "错误获取文档:" . $snoopy->error . "\n";}
更多操作方法可以去Snoopy的官方文档,或者直接查看源码。
此时,snoopy 只取回页面。如果您想从获取的页面中提取数据,那么它不会有太大帮助。这里又找到了一个php解析html的好工具:phpQuery,它提供了和jquery几乎一样的操作方法,并且提供了一些php的特性,熟悉jquery的童鞋,应该还是蛮好用的phpquery,连phpQuery的文档都没有已经需要了。。
使用Snoopy+PhpQuery可以轻松实现网页爬取和数据分析,非常实用。我最近也需要这个,只找到了这两个不错的类库。事实证明,java可以做的事情有很多。php也可以做到。
有兴趣的同学也可以尝试用它们制作一个简单的网络爬虫。