顺利进入了新公司实习,被安排了一个网页爬虫的任务,从迷茫到成熟,让我收获了很多。因为工作太忙,导致博客延缓了更新,现在就跟大家分享一下最近的收获。
准备工作
1.PHP爬虫采用的是curl拓展,所以首先要确保你的PHP已经安装了curl拓展。查看是否已开启拓展可以
查看phpinfo页面找到curl拓展,查看是否开启。
如果没有开启,使用sudo apt-get install php5-curl 命令进行安装
工作原理
爬虫是指将目标网页保存到指定位置或变量中,使用正则表达式对其进行解析,以得到我们想要的数据。
将解析后的数据存入变量中并输出,完成爬虫。
函数说明
public function crawler_run() //爬取网页信息 参数为:返回网页内容存入变量
public function analysis($result) //分析爬取数据 参数为:网页内容
if (preg_match(“/正则表达式/”, $str, $matches)) PHP正则表达式使用函数 $str=’匹配字符’,$matches=’结果数组’。
public function crawler_run() {
$url =”www.baidu.com”;//这里的URL可以随意换成你想要爬取的网站地址
$ch = curl_init($url);//curl初始化
curl_setopt($ch, CURLOPT_USERAGENT, “Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0)”);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($conn[$i],CURLOPT_COOKIE,$cookies);//如果需要登录则加入cookie
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);//设置连接的等待时间
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//禁止调用时就输出获取到的数据
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//// 跳过证书检查 (用来连接https类型的网页)
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//从证书中检查SSL加密算法是否存在(来连接https类型的网页)
$result = curl_exec($ch);//返回的结果就是爬取的网页,你可以把它保存到本地或者直接打印输出,或者用于后续的分析。
}