1. 程式人生 > >python爬蟲-爬取美女圖片

python爬蟲-爬取美女圖片

當你發現某個網站上有大量的美女圖片,又非常想看,怎麼辦,網頁上看?每次看的時候都得載入吧!No,你可以把這些圖片都儲存到本地,然後,在你想看的時候就可以隨時看了,哈哈!多的不說。下面就來上程式碼:
1,匯入庫檔案:
# -*- coding:utf-8 -*-

# 通過requests模組下載網路內容
import requests
#引入正則表示式模組,時間模組
import re, time
2,找到有美女圖片的連結地址:
def getpageurl():
    page_list = []
    #進行列表頁迴圈
    for page in range(1600
,1999): url="http://jandan.net/ooxx/page-"+str(page)+"#comments" #把生成的url加入到page_list中 page_list.append(url) return page_list

3,利用正則表示式,從網頁內容中匹配出要下載圖片的連結地址:

def geturllist(url):
    url_list=[]
    print url

    #head是我們自己構造的一個字典,裡面儲存了user-agent
    head = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36'
} # html = requests.get('http://jp.tingroom.com/yuedu/yd300p/') html = requests.get(url, headers = head) text = html.text #正則匹配,匹配其中的圖片 pic_urls = re.findall('</a><br /><img src="(.*?).jpg" /></p>', text) for i in pic_urls: image = i + '.jpg' print
'image url = ' + image url_list.append(image) return url_list

你可能已經注意到了這麼一句:
html = requests.get(url, headers = head) :這裡不僅傳入了url,而且還傳入了一個頭,對了,這裡一定要非常注意,如果你不設定請求頭,很多網站都設定了許可權,可以檢測當前的操作是不是在瀏覽器中完成的。知道了這一點,就簡單多了。我們只需要偽裝一下,偽裝成是瀏覽器中的操作,那麼怎麼得到這個頭的內容呢?
如果你是chrome瀏覽器那麼簡單了,開啟開發者除錯模式,選中network,重新重新整理一下網頁,你會得到類似下面的東西:

這裡寫圖片描述
好了,瀏覽器的引數得到了,你可以進行欺騙了。
4,上面的兩個方法足以讓你抓取到圖片,那麼具體怎麼使用這兩個方法呢?看下面:

if __name__ == '__main__':

    pageurl = getpageurl()[:-1]
    #進行圖片下載

    for url in pageurl:
        url_list = geturllist(url)

        i = 0

        for each in url_list:
            print 'now downloading:' + each
            pic = requests.get(each)
            name=str(time.time())[:-3]+"_"+re.sub('.+?/','',each)
            fp = open('pic//' + name , 'wb')
            fp.write(pic.content)
            fp.close()
            i+=1

好了,大功告成,你可以執行下試試,如果缺少相應的庫,可以先進行安裝,這裡庫安裝的方法不做介紹了。

除錯環境:Mac , pyCharm
歡迎交流經驗。