当前位置:Gxlcms > PHP教程 > 更新PHP平台开发时,抓取页面的几种方式_PHP教程

更新PHP平台开发时,抓取页面的几种方式_PHP教程

时间:2021-07-01 10:21:17 帮助过:14人阅读

我们在开发网络程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代码或者xml数据,得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来。

一、 PHP抓取页面的主要方法:

fread()->fclose()模式

二、PHP解析html或xml代码主要方式:

1. file()函数

输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string; 

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

输出内容,嘿嘿,大家也可以保存在自己的服务器上 
echo htmlspecialchars($lines_string);

3. fopen()->fread()->fclose()模式

输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

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

输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

5. fsockopen()函数 socket模式
socket模式能否正确执行,也跟服务器的设置有关系,具体可以通过phpinfo查看服务器开启了哪些通信协议。

\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: t.qq.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

6.

fetch($url);
 //保存采集内容到$lines_string
$lines_string = $snoopy->results;
//
输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo $lines_string;

说明:设置agent是在 Snoopy.class.php 文件的第45行,请在该文件中搜索 “var $agent” (引号中的内容)。浏览器内容你可以使用PHP来获得,
使用 echo $_SERVER['HTTP_USER_AGENT']; 可以得到浏览器信息,将echo出来的内容复制到agent里面就可以了。

浪风小园子 -- 比较认真的PHP平台开发

本页完整页面地址:http://www.cnblogs.com/rirber/archive/2013/06/15/php-server-get-curl-data.html

本页网址缩短(url地址):http://url.cn/EeOhAy

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440296.htmlTechArticle我们在开发网络程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代...

人气教程排行