掌握PHP爬取网页的主要方法

2025-07-06 02:15:03 3
  • 收藏
  • 管理
    主要流程就是获取整个网页,然后正则匹配(关键的)。 PHP抓取页面的主要方法,有几种方法是网上前辈的经验,现在还没有用到的,先存下来以后试试。 1.file()函数 2.file_get_contents()函数 3.fopen()->fread()->fclose()模式 4.curl方式 (本人主要用这个) 5.fsockopen()函数 socket模式 6.插件(如:http://sourceforge.net/projects/snoopy/) 7.file()函数 复制http://t.qq.com](http://t.qq.com/);//fiel函数读取内容数组 $lines_array=file($url);//拆分数组为字符串 $lines_string=implode(,$lines_array);//输出内容 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都不能打开远程文件。 复制$url="[http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml](http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml)"; $html=file_get_contents($url);//如果出现中文乱码使用下面代码`//$getcontent = iconv("gb2312", "utf-8",$html); echo""; 3.fopen()->fread()->fclose()模式 ,目前还没用过,看到了就先记下了 复制http://t.qq.com](http://t.qq.com/);//fopen以二进制方式打开 $handle=fopen($url,"rb");//变量初始化 $lines_string="";//循环读取数据do{ $data=fread($handle,1024);if(strlen($data)==0){` break; } $lines_string.=$data; }while(true);//关闭fopen句柄,释放资源 fclose($handle);//输出内容 echo $lines_string; 4.使用curl实现(本人一般使用这个)。 使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需 要拷贝ssleay32.dll和libeay32.dll到C:\\\\WINDOWS\\\\system32下;Linux下要安装curl扩展。 复制(.*?)<\\\\/script>/,$res,$arr_all);//这个网页中数据通过js包过来,所以直接抓js就可以 preg_match_all(/"id"\\\\:"(.*?)",/,$arr_all[1][1],$arr1);//从js块中匹配要的数据 $list = array_unique($arr1[1]);//(可省)保证不重复//以下则是同理,循环则可for($i=0;$i<=6;$i=$i 2){ $detail_url =ht*****em/.$list[$i]; $detail_res = curl_get_contents($detail_url); preg_match_all(/
    上一页:掌握python19个值得学习的编程技巧 下一页:掌握PHP7的基本变量
    全部评论(0)