php采集程序的方法有哪些_php采集插件

php采集程序的方法有哪些_php采集插件php采集程序的方法在我们程序开发的过程中是经常要遇到的,那我们常用的采集方法有哪些呢,下面我们一起来看具体的方法,还附带有具体实例,让大家一看就明白,会用。方法一:file_get_contents($url);$url=”http://www.seostudying.com”;$con=file_get_contents($url); //采集到的内容将存储到$c

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

php采集程序的方法在我们程序开发的过程中是经常要遇到的,那我们常用的采集方法有哪些呢,下面我们一起来看具体的方法,还附带有具体实例,让大家一看就明白,会用。

方法一:file_get_contents($url);
<?php
$url = “http://www.seostudying.com”;
$con = file_get_contents($url);  //采集到的内容将存储到$con里面
echo $con;
?>

方法二、使用 curl 来进行采集
使用 curl 来采集数据比 file_get_contents 更加灵活,现在很多网页做了防采集的措施,如果直接使用 file_get_contents 来进行采集的话,将无法成功
但是使用 curl 将没有这种问题,curl 可以模拟浏览器信息进行采集。
以下是使用 curl 进行采集的实例,其中 curl_setopt 是常用到的几项设置,请根据需要选择。
<?php
$url = “http://www.seostudying.com”;
$useragent = “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)”;
$header = array(‘Accept-Language: zh-cn’,’Connection: Keep-Alive’,’Cache-Control: no-cache’);
$ch = curl_init();  //初始化 curl
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);  //模拟浏览器的头信息
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);  //模拟浏览器的信息
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);  //是否保存采集内容
curl_setopt($ch, CURLOPT_TIMEOUT, 60);  //curl允许执行的最大时间,单位是秒
curl_setopt($ch, CURLOPT_URL, $url);  //要采集的网址
curl_setopt($ch, CURLOPT_HEADER, 1); //是否要保存头信息
$con = curl_exec($ch);  //采集到的内容将存储到$con里面
echo $con;
?>

方法三、使用网上非常流行的snoopy来进行采集

这是一个非常强大的采集插件,并且它的使用非常方便,你也可以在里面设置agent来模拟浏览器信息。
<?php
require(‘Snoopy.class.php’); //引入snoopy的类文件
$snoopy = new Snoopy;        //初始化snoopy类
$url = “http://www.seostudying.com”;
$snoopy->fetch($url);        //开始采集内容
$con = $snoopy->results;    //保存采集内容到$con
echo $con;
?>
上面的3种方法就是我们使用PHP来进行采集常常用到的几种方法,其中snoopy是最简单的,当然在实际使用的时候可能需要根据实际情况组合使用,这几个例子都只是最基本的采集代码,在运用的时候你需要根据个人需求添加相应的正则来提取所需的内容。
我在做采集程序的时候碰到的几个问题主要有以下几种:
1.PHP程序的30秒的超时问题,解决的办法是在采集代码之前加 set_time_limit(0); 0代表不限制
2.采集的时候返回结果为403,此时你需要检查自己的代码是否模拟了浏览器信息。
3.对方网站加密,采集回来的是一堆乱码,这个一般情况比较少。
采集程序实际上原理通过程序模拟人工访问网站的步骤,把打开的网页保存到本地,然后通过正则来提取自己想要的内容。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234273.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • eclipse svn冲突怎么解决_键位冲突怎么解决

    eclipse svn冲突怎么解决_键位冲突怎么解决点击打开链接

    2022年10月14日
  • n皇后问题有几个解_求n的阶乘java代码

    n皇后问题有几个解_求n的阶乘java代码N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)。n皇后问题不算是陈词滥调,也是老生常谈了,作为回溯的经典案例,有递归和非递归两种实现方式,同时,除了回溯算法,最近我在网上查了下看到还可以用位运算来解决这个问题。本次趁着本学期算法课程的期末要求,我将对两种算法的实验效果进行分析。1、使用回溯解决n皇后问

  • 回收测试JInternalFrame「建议收藏」

    回收测试JInternalFrame「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

  • 设置下一跳(ensp配置实例大全)

    下一跳:首先要知道出口,也就是路由器的发出口。连接线有两个端点,其中一个就是路由器的发出口,另一端就是下一跳。对于其中一个路由器来说,它要发送到其他网段,那么目标地址就是要发送的网段的网络地址,出接口就是路由器的出口,下一跳就是路由器出口相连的那根线的另一端(这个路由器只能做这么多,其余的交给下一个路由器)…

  • License Error:“Failed to Open the TCP Port Number in the License “终极解决方案

    License Error:“Failed to Open the TCP Port Number in the License “终极解决方案为什么叫终极解决方案,不是笔者吹牛,这个列表比目前synopsys,cadence,的support文档里的内容都全,还有FLEXnet的帮助文档也没这全。这些招大部分edavendor的工程师也不全会,真实结论不是瞎说。这事折腾好久,花了很多精力,就让笔者吹吹牛吧,哈哈。另外,如果以下的问题都排除了,还报这个license错,不要怀疑列表不全,99%的可能是其中哪一步做的不彻底。挨

  • 利用serv-u创建ftp服务器_ftp读取目录列表失败

    利用serv-u创建ftp服务器_ftp读取目录列表失败一、由来最近改写了项目中ftp上传部分的代码。用到的组件为:<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.3</version></depen…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号