抓取网页数据 php(php.ini中max_execution_time设置的大点,不然会报错的)
优采云 发布时间: 2021-09-21 18:23抓取网页数据 php(php.ini中max_execution_time设置的大点,不然会报错的)
抓取之前,请记住将Max放在php.ini中,执行时间应设置得更大,否则将报告错误
一、使用snoopy.class.php抓取页面
一个可爱的类名。这个功能也非常强大。它用于模拟浏览器的功能。您可以获取web内容、发送表单等
1)我现在想捕获网站列表页面的内容。我想捕获全国医院信息的内容,如下图所示:
2)I自然复制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)后来,我怀疑里面可能放了一块饼干,然后我用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)use phpquery获取节点信息,如下DOM结构所示:
使用一些phpquery方法和DOM结构读取每个医院信息的URL地址
for($i = 1; $i attr('href')); //医院详情
}
}
3)根据读取的URL地址列表抓取指定页面
$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}
FQ工具下载:
障碍攀登
演示下载:
Snoopy类的一些描述:
类方法
获取($URI)