Python 2.7和3.6爬取妹子圖網站單頁測試圖片


1、url= http://www.mzitu.com/74100/x,2為1到23的值

2、用到模塊 os 創建文件目錄; re模塊正則匹配目錄名 圖片下載地址; time模塊 限制下載時間;requests模塊獲取網頁源代碼;urllib模塊 urllib.urlretrieve(圖片url,保存的帶擴展名的文件名x.jpg)方法下載圖片

3、知識點 文件目錄處理  函數封裝調用 全局變量

4、代碼

# -*- coding:utf8 -*-
import os
import re
import requests as rq
import urllib
import time


# 創建目錄函數 保存文件位置
def create_catename():
    # 取出網頁的上層目錄名稱
    url = urls[0]
    html = rq.get(url).text
    cate_name = re.findall(r'<a href="http://www.mzitu.com/xinggan" rel="category tag">(.*?)</a>', html)[0]
    path = 'D:\\%s' % cate_name
    return path


# 下載圖片 定義n為全局變量 以n計數為圖片的文件名n.jpg  定義n全面變量 以免for循環時候上次循環n的值被重新賦值
def getimg():
    global n
    n = 1
    for url in urls:
        html = rq.get(url).text
        regex = re.compile('<img src="(.*?.jpg)" alt=')
        img_url = re.findall(regex, html)[0]
        #urllib.urlretrieve(img_url, '%s.jpg' % n) ,此處為Python2.7 寫法
        urllib.request.urlretrieve(img_url, '%s.jpg' % n) #prython3.6寫法
        n += 1


# main函數 調用上面的兩個函數  urls是個全局變量 取23張頁面 下載23張圖
def main():
    global urls
    urls = ['http://www.mzitu.com/74100/{}'.format(str(i)) for i in range(1, 24)]
    path = create_catename()
    # 創建文件目錄
    os.mkdir(path)
    # 切換到該目錄
    os.chdir(path)
    time.sleep(2)
    getimg()


main()


免責聲明!

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



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