如何優雅的扒網站——工具篇


 

         在上一篇文章里本人介紹了扒網站的入門知識。可以說是仿站的必備知識。不過,在實戰中沒必要所有的頁面都要全部手動去操作處理,完全可以借助大牛們寫好的工具。網上搜索仿站工具或扒站工具能找到一堆,我就不一一介紹了。今天就分為兩個部分來講一講扒站工具,第一部分是針對單頁面的,第二部分是針對整站的。不要以為有了整站下載工具第一部分就可以跳過。目前為止我還沒有找到一款完美的整站下載工具,大部分都要很繁鎖地處理代碼。所以除非頁面很多,不然真不如單個頁面分別抓取更快捷一些。

         第一個工具是抓取單網頁的。

         每個軟件的名稱不一樣,但是使用方法都是大同小異。我在這里就拿這個仿站工具舉例了。首先打開軟件,添加要抓取的網頁地址,再點擊下一步。

圖片

         圖片

         然后,選擇好存放站點文件的目錄,點擊開始下載,等待下載完成即可。

圖片

圖片

 

         圖片

         到這一步已經完成,打開選擇的存放目錄,你需要的文件已經按image,css,js分類好了,其中image是頁面引用的圖片,picture是css中引用的圖片。是不是soeasy.

 圖片

         第二部分是整站下載

         感覺整站下載是個高大上的手段,能把別人的網站整個剽竊下來。不過下面的步驟可能會令你有些失望。因為我使用的這個工具有太多不盡人意之處,比如說html,css,js沒有美觀的分類,html命名莫名地冗長,背景圖片的無端丟失,還有軟件商植入的標簽痕跡。帶着這些問題點我們要一一解決掉。

         先給這個工具來個特寫吧,我是沒有花錢直接下載的注冊版,估計花錢購買的會更好用一些。

         圖片

         首先在菜單欄,依次選擇文件-新建項目向導,在彈出框里點擊下一步。

圖片

         然后,還是傻瓜式的操作。填寫上要抓的網站地址,當然是寫網站首頁。鏈接深度不用管用默認的3就可以,接着點下一步。

         圖片

         接下來還是下一步,如果有賬號密碼就填上,沒有就忽略。

         圖片

         一路點完成后,會提示選擇存放路徑。然后配置步驟就算完成了。然后激動人心的時刻來了,點擊工具欄的三角圖標。整站下載就開始了,等一兩分鍾,提示下載完成。


圖片

圖片


圖片



圖片

 

         不要以為這就算結束了,這才剛剛開始。你也看到了,所有文件都放在一個目錄里。而且我已經按照類型排序,還是如此混亂。幸好是只有兩個頁面,如果多的話那要亂成什么樣子。下面的工作就是處理我一開始說的各種問題,包括統一命名。因為如果有子頁面的話,他會用特別長的字符來命名。

1.      按類型分類。

按類型分類是個很好的習慣,強列建議把這一步放在第一位,謹記分類后把頁面的引入路徑批量調整下。

 

         2.使用正則去掉tppabs標記

                   圖片

                   如果你用的工具沒有這種流氓行為那么可以忽略這一步。如果有那么我們就需要使用正則來批量替換了。這應該是特別簡單的正則了,具體語句和替換方式請根據使用工具和文本編輯軟件來使用,這里以sublime作參考,tppabs="[^"]+"

         圖片

  3.使用腳本下載css中的背景圖片。

          上面提到過了,這個工具會漏掉css文件中的背景圖片文件。那么我們就需要單獨寫個腳本來下載圖片了。至於用什么腳本看你擅長什么了。我用的是php,所以用php腳本作參考。同第一步一樣,下載好以后,記得把引入的文件路徑與實際路徑對應上。

  

$root_url = 'http://m.enjoyfin.com/statics/css/'; //原存放css文件的根目錄
    $pic_bac  = 'http://m.enjoyfin.com/statics/';     //原存放背景圖片的根目錄
    $webs = array(
            'style.css',
            'swiper.css'
            );
    echo "<pre>";
    foreach($webs as $k=>$v)
    {
        $url = $root_url.$v;
        $contents = file_get_contents($url);
        if(preg_match_all("/background:url\(\.\.\/(.+)\)\s+no-repeat/",$contents,$new)){
        //print_r($new[1]);
              foreach ($new[1] as $key => $value) {
                  $pic_url = $pic_bac.$value;
                  $new_url = './images/'.substr(strrchr($value, '/'), 1);
                  
                  echo "<br>";
                  $content = file_get_contents($pic_url);
                file_put_contents($new_url,$content);
                echo $new_url;
              }
        }else{
               echo '未找到';
        }
    }

 

4.批量命名文件

不嫌麻煩的話手動重命名未嘗不可,我在這里只是提供一個思路,肯定會有更好的方法。

首先打開cmd,進入存放html文件的目錄,使用dir /b>abc.xls  命令把所有文件導出到abc.xls的excel表格里。然后,使用分列,合並等等方法,把每一條內容變成

 

rename "index.php-m=content&c=index&a=show&catid=9&id=9.htm" "catid=9id=9.htm"  // 重命名文件

 

類似這樣一條命令,再把命令腳本全都放在一個記事本里,保存成bat拓展名的可執行腳本放在Html文件目錄,雙擊執行就ok了。當然還有關鍵的一步,把html文件中的引入路徑,鏈接路徑批量替換一下。

 

 

         以上就是抓取單頁面和整站使用工具的方法,如果任性可以去購買收費軟件。如果窮逼或是練手,那么不妨一試吧。

 


免責聲明!

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



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