cari
Rumahphp教程php手册PHP采集静态页面并把页面下载css,img,js保存

这是一个可以获取网页的html代码以及css,js,font和img资源的小工具,主要用来快速获取模板,如果你来不及设计UI或者看到不错的模板,则可以使用这个工具来抓取网页和提取资源文件,提取的内容会按相对路径来保存资源,因此你不必担心资源文件的错误url导入.

首页 index.php,代码如下:

<!DOCTYPE html> 
	<html> 
	<head> 
	<meta name="author" content="flute" /> 
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
	<title>网页抓取器</title> 
	<link rel="stylesheet" href="main.css" media="all" /> 
	<script type="text/javascript" src="jquery.js"></script> 
	<script type="text/javascript" src="main.js"></script> 
	</head> 
	<body> 
	<h1 id="Web-nbsp-Grabber">Web Grabber</h1> 
	<hr /> 
	<div class="box"> 
	  <h2 id="Url">Url</h2> 
	  <div class="form"> 
	    <input type="text" id="project" value="projectname" /> 
	    <input type="text" id="url" value="http://" size="60" /> 
	    <button class="submit" type="button">Get</button><span id="tip"></span> 
	  </div> www.phprm.com 
	</div> 
	<div class="box"> 
	  <span class="all" id="saveall">Save All</span> 
	  <h2 id="List">List</h2> 
	  <ul id="list"> 
	  </ul> 
	</div> 
	</body> 
	</html> 

抓取页面代码 grab.php,代码如下:

<?PHP 
	 /* 
	 * flute 
	 * 2014/03/31 
	 */ 
	 
	 if(isset($_POST[&#39;url&#39;])) { 
	  if(isset($_POST[&#39;project&#39;]) && !is_dir($_POST[&#39;project&#39;])) mkdir($_POST[&#39;project&#39;], 0777); 
	  echo json_encode(grab($_POST[&#39;url&#39;])); 
	 } 
	 
	 function grab($url) { 
	  //$url = &#39;http://ldixing-wordpress.stor.sinaapp.com/uploads/leaves/test.html&#39;; 
	  $data = array(); 
	  $file = preg_replace(&#39;/^.*//&#39;, &#39;&#39;, $url); 
	 
	  if(($content = file_get_contents($url)) !== false) { 
	 
	   if(isset($_POST[&#39;project&#39;])) file_put_contents($_POST[&#39;project&#39;].&#39;/&#39;.$file, $content); 
	 
	   $pattern = &#39;/<link.*?href=(&#39;|")(.*?.css)1.*/i&#39;; 
	   if(preg_match_all($pattern, $content, $matches)) { 
	    $data[&#39;css&#39;] = $matches[2]; 
	   } 
	 
	   $pattern = &#39;/<script.*?src=(&#39;|")(.*?.js)1.*/i&#39;; 
	   if(preg_match_all($pattern, $content, $matches)) { 
	    $data[&#39;js&#39;] = $matches[2]; 
	   } 
	 
	   $pattern = &#39;/<img.*?src=(&#39;|")(.*?)1.*/i&#39;; 
	   if(preg_match_all($pattern, $content, $matches)) { 
	    $data[&#39;img&#39;] = $matches[2]; 
	   } 
	 
	   $pattern = &#39;/url((http://pic2.phprm.com/2014/09/22/&#39;|"|s)(.jpg)/i&#39;; 
	   if(preg_match_all($pattern, $content, $matches)) { 
	    $data[&#39;src&#39;] = $matches[2]; 
	   } 
	  } 
	 
	  return $data; 
	 } 
	 
	 
	 function vardump($obj) { 
	  echo &#39;<pre class="brush:php;toolbar:false">&#39;; 
	  print_r($obj); 
	  echo &#39;
';   }   

保存css,js,img等资源的页面 save.php,代码如下:

<?PHP 
	 /* 
	 *  flute 
	 *  2014/03/31 
	 */ 
	 
	 if(isset($_POST[&#39;url&#39;]) && isset($_POST[&#39;project&#39;]) && isset($_POST[&#39;domain&#39;])) { 
	  extract($_POST); 
	  $url = preg_replace(&#39;/?.*$/&#39;, &#39;&#39;, $url); 
	  $file = $url; 
	  $arr = explode(&#39;/&#39;, $file); 
	  $length = sizeof($arr); 
	  $filename = $arr[$length - 1]; 
	  $root = $project; 
	  $dir = $root; 
	 
	  if($domain == &#39;http&#39;) { 
	   $dir = $root.&#39;/http&#39;; 
	   if(!is_dir($dir)) mkdir($dir, 0777); 
	  } else { 
	   $file = $domain.&#39;/&#39;.$url; 
	   for($i = 0; $i < $length -1; $i++) { 
	    if(!emptyempty($arr[$i])) { 
	     $dir .= &#39;/&#39;.$arr[$i]; 
	     if(!is_dir($dir)) mkdir($dir, 0777); 
	    }//开源代码phprm.com 
	   } 
	  } 
	  if(!file_exists($dir.&#39;/&#39;.$filename) || filesize($dir.&#39;/&#39;.$filename) == 0) { 
	   $content = file_get_contents($file); 
	   file_put_contents($dir.&#39;/&#39;.$filename, $content); 
	  } 
	 } 
	 

使用方法:

1. 打开index页,输入项目名和要抓取的网址,网址必须是文件名结尾,如index.html;

2. 点Get按钮,得到当前页面所有的css,js,img等资源列表;

3. 点击css链接会获取css文件中的背景资源图片,附加在列表后头;

4. 点击Save All即可保存列表中所有的文件,并按相对路径生成;

5. 如果网页上有http远程文件,将会直接保存在http文件夹下;

6. Get和Save有时会失败,没关系重试几次即可。

本文地址:

转载随意,但请附上文章地址:-)

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa