用php抓取页面的内容在实际的开发其中是很实用的,如作一个简单的内容採集器,提取网页中的部分内容等等。抓取到的内容在通过正則表達式做一下过滤就得到了你想要的内容。
下面就是几种经常使用的用php抓取网页中的内容的方法。
1.file_get_contents
PHP代码
2.curl
PHP代码
3.fopen->fread->fclose
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。
1.file_get_contents
PHP代码
<? php |
2.curl
PHP代码
<?php $url = "http://www.phpzixue.cn"; $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 |
注:
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:\WINDOWS\system32下。Linux下要安装curl扩展。