快捷搜索: 王者荣耀 脱发

Python爬虫:爬取网页图片

本博客已经转移到: 此博客后续不会再更新,详情请关注一下 谢谢。  

目标网页路径:

先分析查找要爬取图片的路径 在浏览器F12 审查元素

整体实现代码

# -- coding:UTF-8 --
import requests
from bs4 import BeautifulSoup
import os

思路:获取网址
      获取图片地址
      爬取图片并保存

# 获取网址
def getUrl(url):
    try:
        read = requests.get(url)  #获取url
        read.raise_for_status()   #状态响应 返回200连接成功
        read.encoding = read.apparent_encoding  #从内容中分析出响应内容编码方式
        return read.text    #Http响应内容的字符串,即url对应的页面内容
    except:
        return "连接失败!"

# 获取图片地址并保存下载
def getPic(html):
    soup = BeautifulSoup(html, "html.parser")
    #通过分析网页内容,查找img的统一父类及属性
    all_img = soup.find(ul, class_=thumbnail-group thumbnail-group-165 clearfix).find_all(img) #img为图片的标签
    for img in all_img:
        src = img[src]  #获取img标签里的src内容
        img_url = src
        print(img_url)
        root = "F:/Pic/"   #保存的路径
        path = root + img_url.split(/)[-1]  #获取img的文件名
        print(path)
        try:
            if not os.path.exists(root):  #判断是否存在文件并下载img
                os.mkdir(root)
            if not os.path.exists(path):
                read = requests.get(img_url)
                with open(path, "wb")as f:
                    f.write(read.content)
                    f.close()
                    print("文件保存成功!")
            else:
                print("文件已存在!")
        except:
            print("文件爬取失败!")


# 主函数
if __name__ == __main__:
   html_url=getUrl("https://findicons.com/search/nature")
   getPic(html_url)

运行结果

爬取结果

经验分享 程序员 微信小程序 职场和发展