Python入门-爬取图片并下载

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

"""

Created on Sat May  4 20:24:04 2019

 

@author: navy

"""

import re

import urllib

 

# 拿到页面数据

def getHtml(url):

  page = urllib.request.urlopen(url)

  html = page.read()

  return html

 

# 通过正则表达式获取图片路径

def getImage(html):

  reg = r'src="(.*?\.jpg)"'  # r表示不转移 . 匹配任意字符  .*? 后面多个问号,代表非贪婪模式,也就是说只匹配符合条件的最少字符

  pattern = re.compile(reg, re.I)

  html = html.decode('gbk'); # 将字节转成字符串

  result = re.findall(pattern, html);

  count = 0;

  for imgUrl in result:

    print(imgUrl)

    count = count + 1;

    urllib.request.urlretrieve(imgUrl, "E:\python_workspaces\images\%s.jpg" % count, callbackfunc) #下载文件

  print("下载完成,总共有:", count, "张图片");

 

def callbackfunc(blocknum, blocksize, totalsize):

    """

    回调函数

    @blocknum: 已经下载的数据块

    @blocksize: 数据块的大小

    @totalsize: 远程文件的大小

    """

    percent = 100.0 * blocknum * blocksize / totalsize

    if percent > 100:

        percent = 100

    print("%.f%%" % percent)

    

if __name__ == '__main__': 

  html = getHtml("http://www.netbian.com/")

  getImage(html)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值