PHP爬取网站内容

news/2024/5/20 15:47:41/文章来源:https://blog.csdn.net/ab15176142633/article/details/119945985
最近公司需要存在阿里云对象存储(oss)里的视频文件,而且需要18套课程的视频源文件,这周就要,我想了一下这要是一个一个找那可就麻烦了。要想想一套课程有n个章节,每个章节有n个视频文件。所以我下定决心要写一个自动下载的程序。

废话不多说,先看效果

在这里插入图片描述

下面是代码

<?php class Request{public static function post($url, $post_data = '', $timeout = 5){//curl$ch = curl_init();curl_setopt ($ch, CURLOPT_URL, $url);curl_setopt ($ch, CURLOPT_POST, 1);if($post_data != ''){curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);}curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);curl_setopt($ch, CURLOPT_HEADER, false);$file_contents = curl_exec($ch);curl_close($ch);return $file_contents;}public static function post2($url, $data=array()){//file_get_content$postdata = http_build_query($data);  $opts = array('http' =>array('method' => 'POST','header' => 'Content-type: application/x-www-form-urlencoded','content' => $postdata));  $context = stream_context_create($opts);$result = file_get_contents($url, false, $context);return $result;}public static function post3($host,$path,$query,$others=''){//fsocket$post="POST $path HTTP/1.1\r\nHost: $host\r\n";$post.="Content-type: application/x-www-form-";$post.="urlencoded\r\n${others}";$post.="User-Agent: Mozilla 4.0\r\nContent-length: ";$post.=strlen($query)."\r\nConnection: close\r\n\r\n$query";$h=fsockopen($host,80);fwrite($h,$post);for($a=0,$r='';!$a;){$b=fread($h,8192);$r.=$b;$a=(($b=='')?1:0);}fclose($h);return $r;}}// 设置页面不超时
ini_set('max_execution_time', '0');
// 设置PHP存大小
@ini_set('memory_limit', '4048M');
// 抓取视频数据内容  21,30,132,9,77,128,129,133,130,134,7,16,135,29,31,92,146,147
// 失败的77 
$data = Request::post2('https://www.xxxx.cn/index/details_data',array('id'=>77));
echo '<pre>';
$data = json_decode($data,true);
foreach ($data as $k => &$v) {if(is_array($v)){// 创建文件夹$dir = iconv("UTF-8", "GBK", "Public/".$v['name']);mkdir ($dir,0777,true);$Catalogdata = $v['Catalogdata'];foreach ($Catalogdata as $kk => &$vv) {//遍历文件夹$hd = opendir($dir);$i = 0;// 读取while($f=readdir($hd)){// 创建文件夹$dir = iconv("UTF-8", "GBK","Public/".$v['name'].'/'.$vv['id'].$vv['name']);mkdir ($dir,0777,true);// 放入文件 $hd = opendir($dir);// 读取while($f=readdir($hd)){// 1.读取文件内容if(!empty($vv['video_url'])){$mov = file_get_contents('http:'.$vv['video_url']);file_put_contents($dir.'/'.$vv['name'].'.mov',$mov);}$chapter = $vv['chapter'];// 判断是否是数组if(is_array($chapter)){foreach ($chapter as $key => $value) {// 1.读取文件内容$mov = file_get_contents('http:'.$value['vedio']);file_put_contents($dir.'/'.$value['title'].'.mov',$mov);echo ++$i;}}}}// 关闭closedir($hd);}}
}
?>

由于有些特别大的文件下载还有点问题,所以我没有遍历循环,方便下载一套课程检查一套课程。

要是我一个一个手动下载那估计得需要两天多,写这个程序用了三个小时,下载文件大约两个小时,极大的缩短了工作时间,提高了工作效率。感谢大家观看,我们下次见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_832179.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wamp控制下多目录挂网站

图片&#xff1a; 前几天有个网上一起看php100视频学习php的朋友问我怎么在wamp上不同目录挂多个网站&#xff0c;我在网上搜了下资料&#xff0c;自己琢磨了一下午&#xff0c;现在把自己的方法公布出来&#xff0c;欢迎大家指正。也希望大家有更好的办法也公布出来。 以下方…

一种常见网站布局的实现

一种常见布局&#xff08;上方显示单元列表链接&#xff0c;左边显示分类链接&#xff09;的实现 很多网站有一种布局&#xff0c;就是在页面上方显示单元的列表&#xff08;可能是这样&#xff0c;也可以加其它的链接&#xff09;&#xff0c;用户单击某个单元的链接后产生的新…

任意网站支持RSS

说好的metal咋出锅了啊? 今天本来想分享metal还有一些东西在整理,就先分享一个好玩的东西,我们有时候想关注一个不错的学习网站在有更新的时候第一时间知道, 有的网站还不支持RSS, 这可能用Feed43blogtrottr这两个工具了 1,就会在此页面有内容更新。然后 打开 Feed43&#xf…

以电商网站为例,谈大型分布式架构设计与优化

本文大纲&#xff1a; 1. 使用电商案例的原因 2. 电商网站需求 3. 网站初级架构 4. 系统容量估算 5. 网站架构分析 6. 网站架构优化 本文主题为电商网站架构案例&#xff0c;将介绍如何从电商网站的需求&#xff0c;到单机架构&#xff0c;逐步演变为常用的、可供参考的分布式架…

大型php网站性能和并发访问优化方案(转载自php中文网)

网站性能优化对于大型网站来说非常重要&#xff0c;一个网站的访问打开速度影响着用户体验度&#xff0c;网站访问速度慢会造成高跳出率&#xff0c;小网站很好解决&#xff0c;那对于大型网站由于栏目多&#xff0c;图片和图像都比较庞大&#xff0c;那该怎么进行整体性能优化…

你想学的一切,只需要这一个网站就够了

简评&#xff1a;这个网站叫 Learn Anything&#xff0c;最终形态是「人们想要搜索什么知识&#xff0c;都会获得最高效且适合自己的学习路径&#xff0c;知识图谱」。现在网站刚刚建立不久&#xff0c;还处于比较初期&#xff0c;是个开源项目&#xff0c;大家有兴趣可以参与一…

程序员业余必去的六个网站!

工作了半年后&#xff0c;觉得自己的能力毫无提升的方式&#xff1f;作做好本职工作之外&#xff0c;不妨多去接一些私活&#xff0c;除了提升自己的技能之外&#xff0c;也让收入再上一层&#xff0c;何乐不为&#xff1f; 平台 0.程序员客栈 https://www.proginn.com/ 主要雇…

用xampp 和wordpress 搭建本地网站

你好&#xff0c;从今天开始&#xff0c;我将为大家带来一些我学习SEO和建站的免费教程&#xff0c;今天为大家带来的是如何用XAMPP搭建一个属于你自己的网站。来到这里&#xff0c;可以说很多在百度上已经过时了的资料需要总结的资料这里都有&#xff0c;你只要按照我的教程来…

Ruby on Rails 简介。来自于一个台湾网站,某些术语与大陆翻译不同

转:https://ihower.tw/rails4/intro.html Ruby on Rails 簡介 “Life’s too short to build something nobody wants” - Ash Maurya, Running Lean 作者 Ruby on Rails是一套非常有生產力、維護性高、容易佈署的Web開發框架。從一開始不知名的玩具&#xff0c;到現在它已經成…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性&#xff08;Avaliability&#xff09;描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间&#xff08;故障时间&#xff09;故障修复时间点-故障发现&#xff08;报告&#xff09;时间点…

安装网站源码时提示:【写入配置失败,请检查***目录是否可写入!】 (已解决)

首先网站安装位置&#xff0c;可以百度查一查。 我的是阿里云服务器&#xff0c;位置是阿里云之前指定的路径&#xff0c;就直接拿来用了&#xff0c;具体文章参考这里&#xff1a;传送门。 然后一路绿灯&#xff0c;也没有什么服务没有开启的情况。不过这里&#xff0c;有个文…

免费抖音短视频素材网站分享

今天给大家分享抖音短视频的知识。 要做好短视频&#xff0c;拥有视频素材网站肯定是少不了&#xff0c;在我们日常的工作学习中也不免会用到一些视频素材。 今天给大家分享一些不错的无版权视频网站(部分需科学上网)&#xff0c;用好了&#xff0c;视频制作的成本将大大降低…

PCB封装库网站

https://www.snapeda.com/home/ https://componentsearchengine.com/index.html 在线EDA&#xff08;可以导出pcb和原件封装&#xff09; https://easyeda.com AD官网库&#xff08;新&#xff09; https://designcontent.live.altium.com/#UnifiedComponents AD官网库&#…

大型网站架构演化发展历程

大型网站系统的特点 1&#xff0c;高并发&#xff0c;大流量&#xff1a;需要面对高并发用户&#xff0c;大流量访问。 2&#xff0c;高可用&#xff1a;不间断服务。 3&#xff0c;海量数据&#xff1a;管理处理海量数据&#xff0c;使用大量服务器。 4&#xff0c;需求快…

android 程序开启启动监听端口,gogo电子竞技-官方网站

脱壳第三讲,UPX压缩壳,以及补充壳知识 一丶什么是压缩壳.以及壳的原理 在理解什么是压缩壳的时候,我们先了解一下什么是壳 1.什么是壳 壳可以简单理解为就是在自己的PE文件中包含了代码.而有不影响我们的PE文件的执行. 2.什么是压缩壳 压缩壳指的是让我们的PE文件变小. 3.压缩壳…

BFD基金服务器网站是真的吗,百度基金正式开售!服务器惨被挤爆惹吐槽

【PConline 资讯】10月28日消息&#xff0c;备受关注的百度理财产品百度百发于10月28日上午10:28正式发售。不过&#xff0c;由于访问量过大&#xff0c;百度理财官网一度无法正常登陆&#xff0c;引起网友吐槽。百度基金产品百发正式发售据介绍&#xff0c;百发是一款基金产品…

linux扫网站目录,Linux下CSF防火墙阻止恶意网站目录/文件扫描

如图&#xff0c;有时候我们检查Apache日记的时候会发现大量这样的单IP或多IP在短时间内请求大量不存在的目录/文件&#xff0c;Apache返回404状态&#xff0c;这不仅消耗服务器资源还可能有安全隐患。我们可以通过CSF防火墙解决&#xff0c;CSF可以根据返回状态次数来屏蔽请求…

js登录其他网站_JS逆向 | 某同城网站模拟登录(RSA)及指纹分析

点击上方“逆向新手”&#xff0c;选择“关注公众号”跟我一起学Python爬虫逆向&#xff01;声明&#xff1a;本文只作学习研究&#xff0c;禁止用于非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01;目标网站&#xf…

富文本editor赋值_基于SpringBoot从零构建博客网站-集成editor.md开发发布文章功能...

发布文章功能里面最重要的就是需要集成富文本编辑器&#xff0c;目前富文本编辑器有很多&#xff0c;例如ueditor&#xff0c;CKEditor、editor.md等。这里守望博客里面是集成的editor.md&#xff0c;因为editor.md是markdown格式&#xff0c;目前markdown由于简洁好用&#xf…

奇安信cdn配置教程_网站速度优化实战教程

网站的打开速度&#xff0c;可以说是seo优化过程中的第一步。因为你网站内容在丰富&#xff0c;质量在好&#xff0c;加载速度慢&#xff0c;别人没耐心等待&#xff0c;也是白搭。假如你不是专门的图片或视频网站&#xff0c;可以根据本教程对网站加载速度做优化&#xff0c;以…