老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Python培训之如何利用Python实现简单的图片下载?

老男孩IT教育

常见问题

2020年11月13日 11:52

在我们的日常生活中,通过网络下载图片是非常普通不过的事情,但是某些图片进行了特殊设置是无法进行直接下载的,遇到这种情况该怎么办?可以通过Python爬虫代码来解决问题。

  在我们的日常生活中,通过网络下载图片是非常普通不过的事情,但是某些图片进行了特殊设置是无法进行直接下载的,遇到这种情况该怎么办?可以通过Python爬虫代码来解决问题。

  一、页面抓取

#coding=utf-8
import urllib
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html
html = getHtml("https://tieba.baidu.com/p/5582243679")
print html

  页面数据抓取过程定义了getHtml()函数,其作用是给getHtml()传递一个网址,最终进行整个页面的下载。

  二、页面数据筛选

import re
import urllib
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html
def getImg(html):
    reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)
    imglist = re.findall(imgre,html)
    return imglist         
html = getHtml("https://tieba.baidu.com/p/5582243679")
print getImg(html)

  页面数据筛选中,定义了一个新的函数getImg(),该函数的功能是筛选出.jpg格式的图片地址。

  三、图片下载

#coding=utf-8
import urllib
import re
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html
def getImg(html):
    reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)
    imglist = re.findall(imgre,html)
    x = 0
    for imgurl in imglist:
        urllib.urlretrieve(imgurl,'%s.jpg' % x)
        x+=1
html = getHtml("https://tieba.baidu.com/p/5582243679")
print getImg(html)

  通过for循环获得所有符合条件的图片网址,并采用urllib.urlretrieve()方法,将远程数据下载到本地,并重新命名!

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。