zoukankan      html  css  js  c++  java
  • Python2下载单张图片和爬取网页图片

    一、需求分析

    1、知道图片的url地址,将图片下载到本地。

    2、知道网页地址,将图片列表中的图片全部下载到本地。

    二、准备工作

    1、开发系统:win7 64位。

    2、开发环境:python2.7。

    3、开发工具:PyCharm。

    4、浏览器:Chrome。

    三、操作步骤

    A.知道图片的url地址,将图片下载到本地。

    a1、打开Chrome,随意找到一个图片网站。

    a2、打开开发者工具(f12键或者fn+f12键),选择第一张图片,可以看到它的src属性就是图片的地址,复制出来。

    a3、编写代码。这里需要引用urllib库以及使用Python IO相关的知识。

     1 # -*- coding:utf-8 -*
     2 '''
     3 知道图片地址,下载图片到本地
     4 '''
     5 import urllib
     6 
     7 #图片url地址
     8 url = 'http://p1.wmpic.me/article/2017/12/22/1513930326_ciDepIns_215x185.jpg'
     9 #方法一
    10 #获取图片数据
    11 res = urllib.urlopen(url).read()
    12 #文件要保存的路径名和文件名
    13 path = "e:dlimgpic2.jpg"
    14 #使用io写入图片
    15 f = open(path , "wb")
    16 f.write(res)
    17 f.close()
    18 #方法二
    19 res2 = urllib.urlretrieve(url , 'e:dlimgpic3.jpg')

    B.知道网页地址,将图片列表中的图片全部下载到本地。

    b1、还是以上面的网页为爬取对象,在该网页下,图片列表中有30张照片,获取每张图片的src属性值,再来下载即可。

    b2、利用BeautifulSoup解析网页,利用标签选择器获取每张图片的src属性值。

    b3、编写代码。

     1 #  -*- coding: utf-8 -*-
     2 
     3 import requests
     4 import urllib
     5 from bs4 import BeautifulSoup
     6 
     7 url = 'http://www.wmpic.me/tupian/qingxin'
     8 res = requests.get(url)
     9 #使用BeautifulSoup解析网页
    10 soup = BeautifulSoup(res.text , 'html.parser')
    11 #通过标签选择器定位到图片位置(与css选择器差不多)
    12 pic_list = soup.select('.item_box .post a img')
    13 i = 0
    14 for img_url in pic_list:
    15     #获取每个img标签的src属性
    16     url_list = img_url['src']
    17     #保存路径,后面是文件名
    18     save_path = 'E:dlimg\'+'downloadpic_'+str(i)+'.jpg'
    19     #解析图片,写入到本地
    20     pic_file = urllib.urlopen(url_list).read()
    21     f = open(save_path, "wb")
    22     f.write(pic_file)
    23     f.close()
    24     i = i+1

    C.运行结果(红色框中pic2.jpg和pic3.jpg是A步骤运行结果,其余以downloadpic_*.jpg命名的图片是步骤B的运行结果)

    文章首发于我的个人公众号:悦乐书。喜欢分享一路上听过的歌,看过的电影,读过的书,敲过的代码,深夜的沉思。期待你的关注!

  • 相关阅读:
    python 协程
    python中基于descriptor的一些概念
    python remove del pop 的区别
    python 装饰器 和面向切面编程(AOP)
    python yield详解
    Python的列表推导式,字典推导式,集合推导式使用方法
    python 垃圾回收机制
    (5) etcd 介绍、经典适用场景、安装、配置、测试
    grafana 安装配置
    open-falcon 安装配置
  • 原文地址:https://www.cnblogs.com/xiaochuan94/p/8108857.html
Copyright © 2011-2022 走看看