如何利用火狐控制台下載網頁圖片


今天在群里看到一個群友的問題,怎么下載網頁的圖片,經過一番的演變,得出了本文的成果,也算是一種思路,還可以演變成干很多事,因此寫下此文,希望能夠對大家有所啟發。

問題:

如何從一個網頁里下載瀏覽器加載出來的圖片?

思考思路:

1、利用Ctrl+S保存,取出里面的圖片
2、通過火狐控制台的網絡面板,復制所有圖片鏈接
3、利用控制台執行解析現有html里的img標簽,得到它的鏈接
4、利用第3點得到的鏈接,直接借助js請求一個代理下載地址,幫忙下載圖片文件

本文便是基於第4點實現。

第一步 獲取頁面圖片鏈接並請求下載文件

獲取所有img標簽的鏈接,無論jQuery還是原生javascript都能做到,下面是它們的實現代碼:

jQuery版獲取頁面圖片鏈接並請求下載文件

$("img").each(function(){
    window.open('http://localhost/downloadImg.php?file='+encodeURIComponent($(this).attr("src")));
});

原生javascript版獲取頁面圖片鏈接並請求下載文件

var tags = document.getElementsByTagName("img");
for (var i = 0; i < tags.length; i++) {
    window.open('http://localhost/downloadImg.php?file='+encodeURIComponent(tags[i].src));
}

第二步 文件代理下載程序

<?php
/**
 * 圖片代理下載程序
 * @filename downloadImg.php
 * @author Zjmainstay
 * @website http://www.zjmainstay.cn
 * @usage 存儲於http://localhost目錄下
 */
$filename = urldecode($_GET['file']);
if(preg_match('#/([^/]+)$#i', $filename, $match)) {
    $dir = dirname(__FILE__) . '/downloadImg/';
    if(!is_dir($dir)) @mkdir($dir, 0755);
    $saveFile = $dir . $match[1];
    file_put_contents($saveFile, file_get_contents($filename));
    echo "Success!";
} else {
    echo "Fail!";
}
//自動關閉窗口程序(打開窗口過多,不友好)
echo '<script type="text/javascript">window.close();</script>';

第三步 實操下載

  1. F12打開火狐Firebug控制台,結果如圖(一)所示

火狐控制台運行命令

如果你發現F12打開跟圖片不一樣,那么你需要安裝Firebug:
菜單-工具-附加組件-右上角搜索"Firebug"-安裝(Ctrl+Shift+A可快速打開附加組件窗口)

  1. 輸入第一步的js代碼並運行,結果如圖(二)所示

火狐控制台運行命令獲取圖片鏈接並下載

  1. 查看http://localhost目錄下的downloadImg目錄,結果如圖(三)所示

下載文件列表

附:重要提示

這個代理下載功能(downloadImg.php)切不可對外開放,否則可能被人利用,代理下載攜帶php后門的圖片文件,再結合其他的漏洞利用攻擊你的服務器。

(本文完)

轉載請附帶本文原文地址:如何利用火狐控制台實現網頁圖片下載,首發自 Zjmainstay學習筆記


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM