首页 > php教程 > php手册 > 正文

PHP抓取网页内容的方法

php中文网
发布: 2016-05-25 16:43:16
原创
1636人浏览过

php抓取页面的内容在实际的开发当中是非常有用的,如作一个简单的内容采集器,提取网页中的部分内容等等,抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就不做介绍了,以下就是几种常用的用php抓取网页中的内容的方法.

1.file_get_contents,PHP代码如下:

<?php     
	$url = "http://www.phprm.com";  
	$contents = file_get_contents($url);  
	//如果出现中文乱码使用下面代码  
	//$getcontent = iconv("gb2312", "utf-8",$contents);   
	echo $contents;  
?>
登录后复制

2.curl,PHP代码如下:

<?php 
	$url = "http://www.phprm.com";  
	$ch = curl_init();  
	$timeout = 5;  
	curl_setopt($ch, CURLOPT_URL, $url);  
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
	//在需要用户检测的网页里需要增加下面两行  
	//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);  
	//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);  
	$contents = curl_exec($ch);  
	curl_close($ch);  
	echo $contents;  
?>
登录后复制

3.fopen->fread->fclose,PHP代码如下:

<?php 
	$handle = fopen ("http://www.phprm.com", "rb");  
	$contents = "";  
	do {  
	   $data = fread($handle, 1024);  
	   if (strlen($data) == 0) {  
	   break;  
	   }  
	   $contents .= $data;  
	} while(true);  
	fclose ($handle);  
	echo $contents;  
?>
登录后复制

注:

立即学习PHP免费学习笔记(深入)”;

1.使用file_get_contents和fopen必须空间开启allow_url_fopen。方法:编辑php.ini,设置allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。

2.使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需要拷贝ssleay32.dll和libeay32.dll到C:WINDOWSsystem32下;Linux下要安装curl扩展。

方法一,安装cURL

wget http://curl.haxx.se/download/curl-7.17.1.tar.gz 
tar -zxf curl-7.17.1.tar.gz 
./configure --prefix=/usr/local/curl 
make & make install
登录后复制

安装php,只要打开开关 --with-curl=/usr/local/curl,就可以了,这个扩展库还是非常棒,是fsockopen等等相关的有效的替代品.

方法二,进入安装原php的源码目录.

cd ext
cd curl
phpize
./configure --with-curl=DIR
make & make install
登录后复制

就会在PHPDIR/ext/curl/moudles/下生成curl.so的文件,复制curl.so文件到extensions的配置目录,修改php.ini就好了.

extension=curl.so

第一种方法试了N遍一直在失败中,于是放弃,使用第二种方法安装,phpize提示找不到,其实命令在/usr/local/php/bin/目标下:

# /usr/local/php/bin/phpize

./configure --with-curl=DIR需要指定php的配置路径,应该如下:

# ./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=DIR

注:上面的资料中错把--with-php-config写成了--with-php-php-config,然后就是编译安装:

# make

# make install

到这里会提示生成文件curl.so的路径: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

进入到这个路径下,复制curl到extension_dir目录下(本目录路径可以看phpinfo可是直接看php.int).

修改php.ini

extension=curl.so
# /usr/local/php/bin/php -m
登录后复制

如果看到有curl项表示成功。

重启apache

# /usr/local/apache2/bin/apachectl stop
# /usr/local/apache2/bin/apachectl start
登录后复制

到此成功了,在phpinfo中可以看到CURL的项.

文章地址:

转载随意^^请带上本文地址!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号