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))        #打印匹配成功的字符串信息

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