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.对方网站加密,采集回来的是一堆乱码,这个一般情况比较少。
采集程序实际上原理通过程序模拟人工访问网站的步骤,把打开的网页保存到本地,然后通过正则来提取自己想要的内容。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网络传真机,开启无纸化进程

    网络传真机,开启无纸化进程网络传真机,离你不再遥远!网络传真-真实号码版,超低价来袭,江苏电信倾力投资,立足江苏,面向全国!13万靓号任君选择。(1)传真发送功能点击写传真可进行单个号码发送传真也可多个号码发送(目前单次80个号码上限);传真群发操作:步骤1:输入发送的个号码,多个号码中间用逗号隔开;也可选择地址导入与文本导入方式导入需要发送的号码。步骤2:输入发送主题;步骤3:点击浏览上传要发送的传…

    2022年6月28日
    29
  • 创新与项目管理_创新与创业管理

    创新与项目管理_创新与创业管理值此新商业时代,作为组织内保证所有项目成功交付,支撑组织战略目标实现的PMO,在现代企业管理和商业运作中将扮演着十分重要的角色。现阶段,虽然PMO随着项目管理的普及和深入应用,已经成为组织项目管理发展的新趋势,但是它在迎来新的发展机遇的同时也面临着不小的挑战,其PMO管理能力与水平的高低将决定它自身在支撑组织战略中的价值程度。为进一步加强PMO人士之间的广泛交流,分享成功的PMO运作实践,促进…

    2022年8月31日
    5
  • 会产生classcastexception_服务异常是什么原因

    会产生classcastexception_服务异常是什么原因ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常。此类错误通常会终止用户请求。在执行任何子系统的应用程序代码时都有可能发生ClassCastException异常。通过转换,可以指示Java编译器将给定类型的变量作为另一种变量来处理。对基础类型和用户定义类型都可以转换。Java语言规范定义了允许的转换,其中大多数可在编译时进行验证。不过,某些转换还需要运行…

    2025年10月15日
    3
  • vscode配置java环境变量_配置jre环境变量

    vscode配置java环境变量_配置jre环境变量用VsCode开发Java

    2022年10月4日
    2
  • 《MATLAB编程》例题-画分段函数图像

    《MATLAB编程》例题-画分段函数图像《MATLAB编程》例题解答:使用matlab画函数图像(使用if-else):租用一个交通工具前100公里1美元每公里,在下面的200公里中0.8美元每分钟,越过300公里的部分一律按0.7美元每公里.已知公里数,编写对应的MATLAB语句计算出总花销,和平均每公里的花销.解:1.写出函数表达式(自己化简得到)y1是行驶到第x公里的总花销y2是行驶到第x公里平均每公里的花销2.使用matlab画出函数图像(求出坐标点,连线)matlab代码如下://An

    2022年5月7日
    67

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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