python使用:爬取图片案例,一键式部署快速上手,会使用正则即可

一键式部署:快速上手

1.改网址
2.改正则
3.改本地保存地址

# -*- coding: utf-8 -*- 

#导入所需第三方包。两个包自带。urllib.request用于请求网页,re用于正则表达式
#import request from urllib  和下面的意思一样,但是使用时可以少写'urllib.'
import urllib.request
import re
import time

#获取网页的html,与requests包一样的功能
def getHtml(url):
    response = urllib.request.Request(url, headers = header)
    page = urllib.request.urlopen(response)  
    html = page.read() #urllib用read()读取html;requests包用text读取html
    return html

#获取图片对应的src属性代码
def getImg(html):
    html=html.decode('utf-8')
    
    #通过re-compile-findall二连函数操作来获取图片src属性对应的代码
    #2.改正则
    src = r'https://[^\s]*?\.jpg'  
    imgre = re.compile(src)     #re.compile(),可以把正则表达式编译成一个正则表达式对象
    imglist = re.findall(imgre, html) 

    #re.findall(),读取html中包含imgre(正则表达式)的数据,imglist是包含了所有src元素的数组
    #print(imglist:=list(set(imglist)))
    #获取到的网址去重
    imglist=list(set(imglist))
    #用urlretrieve下载图片。图片命名为0/1/2...之类的名字
    x = 0
    for imgurl in imglist:
        #注意,这里的文件路径,每段路径的首字母一定要大写!!小写会识别出错,多占位符的使用
        #3.改地址
        urllib.request.urlretrieve(imgurl, 'E:\PythonTest\%s-%s.jpg' % (x, x))
        x += 1

header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
#1.改网址
html = getHtml("www.baidu.com")
getImg(html)
print('OK')

你可能感兴趣的:(python)