Php爬虫,爬取数据,识图猜成语
一、寻找数据
1,寻找相关网站数据
http://www.hydcd.com/cy/fkccy/index.htm
分析网站换页特性
分析得出除了第一页,第二页开始index加页面数
写一个函数,专门拼接需要访问的页面
public function getcy($id=3,$num=3){
$i=$id;
$num=$i+$num;
for($i;$i<$num;$i++){
$url="http://www.hydcd.com/cy/fkccy/index".$i.".htm";
$this->pacy($url);
echo "第".$i."个已完成";
}
}
第一个参数为起始页,第二个为爬取的页数
二、使用正则筛选出需要的数据并存入数据库
所有数据都是这种格式,所以正则可以这么写
$regex = "/<td width=\"170\" height=\"210\">(.*?)<\/td>/";
进一步筛选出图片和正确答案
preg_match("/<img border=\"0\" src=\"(.*?)\" alt=\"(.*?)\">/",$v,$con)
这时$con[1]就是图片路径,$con[2]就是正确答案
因为图片是相对路径,我们还要拼接成可以在浏览器访问的路径
这样即可:
$con[1]="http://www.hydcd.com/cy/fkccy/".$con[1];
把网络图片下载到本地,并把他们存入数据库
下面函数是传网络图片路径,下载到本地文件夹的方法。