Python爬取网络图片保存到本地文件夹

Python爬取网络图片保存到本地文件夹

    • 主要内容
    • 第一步 引入库文件
    • 第二步 获取网页文档
    • 第三步 获取图片地址
    • 第四步 通过地址保存图片
    • 第五步 在main方法执行以上方法
    • 第六步 执行main()方法
    • 爬取结果

主要内容

经过上一次的爬虫实例,我已经认识到了网络爬虫的基本步骤,这一次再次做了一套练习,爬取网页图片并且保存到本地。其基本步骤就是获取网页文档,查找目标img标签,再获取img标签的src值然后对图片进行保存~~,上次分析了怎么获取标签,这次就不再重复了。

第一步 引入库文件

import requests
import bs4
from bs4 import BeautifulSoup
import os

第二步 获取网页文档

def getHtml(url):
    try:
        r = requests.get(url)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        print("连接出错了~~")

第三步 获取图片地址

循环图片的容器,将src值提取出来保存在列表里面。

def getImg(text):
    urlList = []
    soup = BeautifulSoup(text,"html.parser")
    tag = soup.find("ul",class_="ali")
    for item in tag.children:
        if isinstance(item, bs4.element.Tag):
            img = item.find("img")
            src = img.get('src')
            print("获取到图片地址:"+src)
            urlList.append(src)
    return urlList

第四步 通过地址保存图片

为了更加直观看到图片被保存,将网络图片的图片名作为我们保存的图片命名,因为获取的src值链接没有“http:”这里把它拼接上,不然要报错呀~~

def getImgFile(root,text):
    for url in getImg(text):
        picName = url.split('/')[-1]
        path = root + picName
        try:
            if not os.path.exists(root):
                os.mkdir(root)
            if not os.path.exists(path):
                r = requests.get("http:" + url)
                with open(path, "wb") as f:
                    f.write(r.content)
                    f.close()
                    print(picName + "已经保存成功!")
            else:
                print(picName + "已存在!")
        except:
            print("爬取失败!")

第五步 在main方法执行以上方法

ef main():
    text = getHtml("https://www.ivsky.com/tupian/ziranfengguang/")
    root = "D://picture//"
    getImgFile(root,text)

第六步 执行main()方法

main()

Python爬取网络图片保存到本地文件夹_第1张图片
Python爬取网络图片保存到本地文件夹_第2张图片

爬取结果

以下就是爬取结果了~~噢咦,感兴趣的快体验一把吧!!!
Python爬取网络图片保存到本地文件夹_第3张图片

你可能感兴趣的:(Python爬虫,python,web)