请选择 进入手机版 | 继续访问电脑版

后端开发@!php教程教你掌握PHP 爬取网页的主要方法

[复制链接]
建宸网络 发表于 2020-8-1 21:11:14 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
5f23cb727241c840.jpg
后端开发@!php教程教你掌握PHP 爬取网页的主要方法
主要流程就是获取整个网页,然后正则匹配(关键的)。

PHP抓取页面的主要方法,有几种方法是网上前辈的经验,现在还没有用到的,先存下来以后试试。

1.file()函数

2.file_get_contents()函数

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

4.curl方式 (本人主要用这个)

5.fsockopen()函数 socket模式

6.插件(如:http://sourceforge.net/projects/snoopy/)

7.file()函数



//定义url

$url='[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()模式 ,目前还没用过,看到了就先记下了



//定义url

$url='[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扩展。


header("Content-Type: text/html;charset=utf-8");

date_default_timezone_set('PRC');

$url = "https://***********ycare";//要爬取的网址

$res = curl_get_contents($url);//curl封装方法

preg_match_all('/
掌握PHP 爬取网页的主要方法

本文转载于php教程网:https://www.php.cn/php-weizijiaocheng-457191.html




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

    注册账号后积极发帖的会员
  • 活跃会员

    经常参与各类话题的讨论,发帖内容较有主见
  • 热心会员

    经常帮助其他会员答疑
  • 推广达人

    积极宣传本站,为本站带来更多注册会员
  • 宣传达人

    积极宣传本站,为本站带来更多的用户访问量
  • 灌水之王

    经常在论坛发帖,且发帖量较大
  • 突出贡献

    长期对论坛的繁荣而不断努力,或多次提出建设性意见
  • 优秀版主

    活跃且尽责职守的版主
  • 荣誉管理

    曾经为论坛做出突出贡献目前已离职的版主
  • 论坛元老

    为论坛做出突出贡献的会员

关注0

粉丝0

帖子437

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )