您现在的位置是:首页 > PHP > 【抓取网页】的一些注意事项 网站首页 PHP
【抓取网页】的一些注意事项
简介
暂无
方式:
- 第一种:抓取网页使用的file_get_contents(url)
- 第二种:使用crul模拟的方式
file_get_contents
优点:
- 就是语法简单
- 自能抓取get的网页,对于post无能为力
缺点:
- 可能会速度比较慢一点
- 如果对方服务器启用的url的检测,禁止file_get_contents的时候就显得很恼火了,怎么都抓不到(当然也有解决方法,一般的浏览器访问的时候会单上浏览器标示,而我们的file_get_contents是不会带,所以就带上,写法:)【ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 9.0)'); //模拟http,user_agent,默认file_get_contents不带user_agent】
- 还有一总情况,就算接收到了,数据还是gzip加密的,这种对于file_get来说就比较麻烦了,解决方法简单点就是使用curl来做要好一点(其他的方法不做追述,比如:zlib库,或者使用gzip解压)
例子:
- ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 9.0)'); //模拟http,useer_agent,默认file_get_contents不带user_agent
- //采集文章列表-get_file_contents
- $url = "http://baidu.com/";
- $conn = file_get_contents($url);
- echo $conn;
curl
优点:
- 速度快一点,至于快在哪里,我也不晓得了
- 可以模拟get和post多种提交方式
- 可以携带跟多的http头信息
- 可以抓取后的gzip加密过的乱码数据
缺点:
- 需要了解这个的用法
- 使用起来稍微麻烦一点
例子:
- $url = "http://baidu.com/";//当然百度这个页面并没有gzip加密,所以这是个假链接(只有需要抓换的网页才加gzip转换)
- $c = curl_init();
- curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
- //模拟ie6浏览器
- curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;http://xs2345.com/)');
- curl_setopt($c, CURLOPT_URL, $url);
- curl_setopt($c, CURLOPT_ENCODING, "gzip"); // 转换gzip
- $contents = curl_exec($c);
- curl_close($c);
打赏本站,你说多少就多少