php file_get_contents 设置代理抓取页面示例
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-12 13:26:13 浏览: 评论:0
file_get_contents函数在php中可以直接打开本地文件也可以直接抓取远程服务器文件,如果简单的采集我们可以使用file_get_contents直接来操作,如果有防采集我们可能需要代理来操作,下面我来介绍file_get_contents抓取页面示例.
例1,普通页面获取
例如,访问54master论坛,想抓取首页里 所有h3标记内的元素,代码如下:
- $url=http://www.phpfensi.com;
- $contents=@file_get_contents($url);
- //preg_match_all("/<p class="right forumcount">(.*?)</p>/is",$contents,$content);
- preg_match_all("/<h3>(.*?)</h3>/is",$contents,$content);
- print_r($content[0]);
例2,设置代码IP去采集数据
使用file_get_contents 和 stream_context_create 即可,代码如下:
- $aContext = array(
- 'http' => array(
- 'proxy' => 'tcp://192.168.0.2:3128', //这里设置你要使用的代理ip及端口号
- 'request_fulluri' => true,
- ),
- );
- $cxContext = stream_context_create($aContext);
- $sFile = file_get_contents("http://www.phpfensi.com", False, $cxContext);
- echo $sFile;
以上代码适用于正常情况,但是如果目标页面需要登录或需要认证信息才能访问的话,可以加多一句代码,代码如下:
- $auth = base64_encode('LOGIN:PASSWORD');//LOGIN:PASSWORD 这里是你的账户名及密码
- $aContext = array(
- 'http' => array(
- 'proxy' => 'tcp://192.168.0.2:3128',//这里设置你要使用的代理ip及端口号
- 'request_fulluri' => true,
- 'header' => "Proxy-Authorization: Basic $auth",
- ),
- );
- $cxContext = stream_context_create($aContext);
- $sFile = file_get_contents(http://www.phpfensi.com, False, $cxContext);
- echo $sFile;
这样就可以使用代理来抓取页面或文件了.
Tags: file_get_contents 抓取页面
- 上一篇:一个PHP SoapServer实例代码
- 下一篇:php计划任务示例详解
相关文章
- ·file_get_contents无法请求https连接的解决方法(2014-07-02)
- ·php file_get_contents与curl性能比较(2014-08-27)
- ·php curl file_get_contents post方式获取数据(2018-09-21)
- ·PHP Warning: file_get_contents failed to open stream解决办法(2018-10-20)
- ·解决file_get_contents无法请求https连接的方法(2020-07-15)
- ·PHP中file_get_contents高級用法实例(2021-04-14)
- ·PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题(2021-06-27)
- ·php curl 抓取页面几种方法介绍(2014-08-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)