爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
我们平常使用搜索引擎浏览网页,有很多和预期的信息不匹配的结果;并且信息量巨大,有了结果以后还需要花费很大的精力进行筛选信息。爬虫应运诞生,我们可以写一段脚本或程序,让他根据我们的需求按照设定的规则进行抓取网页信息,并筛选出我们需要的结果。
首先,在PHP中可以获取万维网页面的函数有很多,例如:file_get_contents()或者curl扩展,再或者还有获取缓冲的ob_get_contents()等,最实用也是最常用的就是file_get_contents()了。例:
目标页面
代码及效果
打开文件后的对比
所以,我们可以利用file_get_contents()来进行爬虫的开发。
步骤:
1. 分析url规则
第一页:http://tieba.baidu.com/f?ie=utf-8&kw=php
第二页:http://tieba.baidu.com/f?kw=php&ie=utf-8&pn=50
第三页:http://tieba.baidu.com/f?kw=php&ie=utf-8&pn=100
在第一页后面加上&pn=0也是同样的第一页的内容,所以,每一页的pn参数都会递增50
可以总结为:&pn=(当前页码-1)*50
2. 根据规则进行循环爬取内容
3. 根据需求进行正则匹配需要的内容(可以根据实际要求进行)
4. 整合结果(写入文件)
//爬取前3页
for($i=1;$i<3;$i++){
$str = file_get_contents("http://tieba.baidu.com/f?kw=php&ie=utf-8&pn=
".($i-1)*50);
$err = file_put_contents("./page".$i.".html",$str);
if(!$err){
die("写入失败");
}
}
echo "写入成功";
结果:
打开其中前两页的效果