PHP抓取网页内容的方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-02 13:33:07 浏览: 评论:0
PHP抓取页面的内容在实际的开发当中是非常有用的,如作一个简单的内容采集器,提取网页中的部分内容等等,抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就不做介绍了,以下就是几种常用的用php抓取网页中的内容的方法.
1.file_get_contents,PHP代码如下:
- <?php
- $url = "http://www.phpfensi.com";
- $contents = file_get_contents($url);
- //如果出现中文乱码使用下面代码
- //$getcontent = iconv("gb2312", "utf-8",$contents);
- echo $contents;
- ?>
2.curl,PHP代码如下:
- <?php
- $url = "http://www.phpfensi.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.phpfensi.com", "rb");
- $contents = "";
- do {
- $data = fread($handle, 1024);
- if (strlen($data) == 0) {
- break;
- }
- $contents .= $data;
- } while(true);
- fclose ($handle);
- echo $contents;
- ?>
注:
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的项.
Tags: PHP抓取 网页内容
- 上一篇:cakephp中截取中文字符串
- 下一篇:php三种常用的排序算法
相关文章
- ·php抓取google hosts的程序代码(2015-04-08)
- ·几种PHP实现网页抓取的程序代码(2015-04-09)
- ·php 抓取新浪新闻的程序代码(2015-04-13)
- ·PHP抓取及分析网页的方法详解(2019-08-18)
- ·PHP实现抓取Google IP并自动修改hosts文件(2021-05-13)
- ·php使用curl简单抓取远程url的方法(2021-05-16)
- ·PHP使用CURL实现多线程抓取网页(2021-05-25)
- ·PHP中4种常用的抓取网络数据方法(2021-05-27)
- ·PHP抓取网页、解析HTML常用的方法总结(2021-06-06)
- ·PHP实现的抓取小说网站内容功能示例(2021-11-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)