編程需求:
網(wǎng)絡(luò)爬蟲技術(shù)被稱為網(wǎng)絡(luò)蜘蛛或者網(wǎng)絡(luò)機器人诀黍,指的是按照某種規(guī)則自動的將網(wǎng)絡(luò)上抓取到的數(shù)據(jù)進行程序化或腳本化絮缅。比如說我們在網(wǎng)絡(luò)上發(fā)現(xiàn)了大量的圖片或者大量的視頻資料。當(dāng)然了你可以使用鼠標(biāo)一個一個去進行下載,但是無可厚非的是會消耗大量的時間和精力拐纱。此時我們就需要一個可以自動抓取網(wǎng)絡(luò)內(nèi)容的腳本泵督,自動抓取網(wǎng)絡(luò)上的圖片或連接趾盐,自動批量下載。當(dāng)然根據(jù)網(wǎng)絡(luò)數(shù)據(jù)抓取深度的不同小腊,數(shù)據(jù)的復(fù)雜程度不同救鲤,設(shè)計網(wǎng)絡(luò)爬蟲的難度也有所不同。
腳本源代碼:
#!/bin/bash
#功能描述:編寫腳本抓取單個網(wǎng)頁中的所有圖片
#需要抓取數(shù)據(jù)的網(wǎng)頁鏈接種子與種子URL文件名
page="網(wǎng)頁地址"
URL="/tmp/spider_$$.txt" #要抓到哪里
#將網(wǎng)頁源代碼保存到文件中
curl -s 網(wǎng)頁地址 > $URL
#對文件進行過濾和清洗秩冈,獲取需要的種子URL鏈接
echo -e "\033[32m正在獲取種子URL,請稍后...本缠、033【0m"
sed -i '/<img/!d' $URL? #刪除不包含<img的行
sed -i 's/.*src=''//' $URL #刪除src=''及前面的內(nèi)容
sed -i 's/''.*//' $URL #刪除雙引號及其后面的所有內(nèi)容
echo
#檢測系統(tǒng)如果沒有wget下載工具則安裝該軟件
if ! rpm -q wget &>/dev/null;
then
yum -y install wget
fi
#利用循環(huán)批量下載所有圖片數(shù)據(jù)
#wget為下載工具,其參數(shù)選項如下所示:
# -P指定文件的下載目錄
# -c支持斷點續(xù)傳
# -q不顯示下載過程
echo -e "\033[32m正在批量下載種子入问,請稍后哦丹锹,嘿嘿嘿嘿嘿!\033[0m"
for i in $(cat $URL)
do
wget -P /tmp/ -c -q $i
done
#刪除臨時種子列表文件
rm -rf $URL