python之爬蟲-----爬取網頁圖片

#!/usr/bin/python
“”“
本程序是爬蟲示例,從百度網頁上下載相應的圖片
”“”
import os
import re
from urllib import request  #從urllib包中導入request模塊,針對python3
import chardet #導入chardet模塊進行檢測編碼類型

“”“
getHtml函數主要是爲了獲取網頁的源代碼,然後從中提取圖片的網址,再進行下載!
”“”
def getHtml(url):
    page = request.urlopen(url)
    html = page.read()
    #自動檢測網頁編碼格式,然後以相應的編碼格式解碼出來,如果沒有檢測到,則使用默認的設置格式
    ct = chardet.detect(html)
    return html.decode(ct.get("encoding","utf-8"))

“”“
getImage函數主要是利用正則表達式從得到的網頁源代碼中提取圖片的網址,然後進行下載相應的圖片
”“”
def getImage(html):
    “”“
    "thumbURL":" 是相應的字符
    ()表示分組,匹配成功之後返回的是分組信息,只返回()內部的信息,.*?表示任何字符任何數量,用最小匹配原則
    這個是整個程序中最爲重要的部分
    ”“”
    reg = r'"thumbURL":"(https.*?.jpg)"'
    imgre = re.compile(reg)     #構造完畢正則表達式之後,再進行編譯處理,加快處理速度
    imglist = re.findall(imgre,html)
    x = 0
    for imgurl in imglist:
        request.urlretrieve(imgurl,"C:/Users/jorh/Desktop/python-execise/data/%d.jpg"%x)    #將提取出的圖片網址進行下載
        print("x = %d"%x)
        x += 1
    return imglist
html = getHtml("https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%D7%C0%C3%E6&fr=ala&ala=1&alatpl=adress&pos=0&hs=2&xthttps=111111")

fo = open('C:/Users/jorh/Desktop/python-execise/data/test.txt','w',encoding = "utf - 8")    #創建一個文本文件,用於保存網頁源碼信息
#print(fo.name)
fo.write(html)
fo.close()

path = os.path.dirname('test.txt')
print(getImage(html))        #打印匹配成功的字符串信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章