在上一篇文章里本人介紹了扒網站的入門知識。可以說是仿站的必備知識。不過,在實戰中沒必要所有的頁面都要全部手動去操作處理,完全可以借助大牛們寫好的工具。網上搜索仿站工具或扒站工具能找到一堆,我就不一一介紹了。今天就分為兩個部分來講一講扒站工具,第一部分是針對單頁面的,第二部分是針對整站的。不要以為有了整站下載工具第一部分就可以跳過。目前為止我還沒有找到一款完美的整站下載工具,大部分都要很繁鎖地處理代碼。所以除非頁面很多,不然真不如單個頁面分別抓取更快捷一些。
第一個工具是抓取單網頁的。
每個軟件的名稱不一樣,但是使用方法都是大同小異。我在這里就拿這個仿站工具舉例了。首先打開軟件,添加要抓取的網頁地址,再點擊下一步。
然后,選擇好存放站點文件的目錄,點擊開始下載,等待下載完成即可。
到這一步已經完成,打開選擇的存放目錄,你需要的文件已經按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文件中的引入路徑,鏈接路徑批量替換一下。
以上就是抓取單頁面和整站使用工具的方法,如果任性可以去購買收費軟件。如果窮逼或是練手,那么不妨一試吧。