说明

python2.7或3.4小脚本
这个小软件是和urllib和urllib2的使用结合了python网页获取异常的处理,原理非常简单,适合初学者练手~

功能

下载这个网站上的图片

成果

先放福利啦~
成果

分析

首先,想下载网站上的图片就需要获得图片的地址,正常套路是用正则在网页源代码中匹配到要下载的图片的网址,再下载,但是这回通过发现图片的路径是有规律的:

http://www.tuigirl8.com/tu/N/n.jpg

N代表第几期,n是代表第几张。
抓取截图
那么接下来就好办了,只要程序循环N和n,不断获取图片就能下载到了!
不过写出来报错,因为当让puython下载的网址不是图片的时候,会报错,程序也就终止了,好办,加个try:
最后修改好是下面的代码

最终成果

2.7版

#-*-coding:utf-8-*-
##python2.7 project

import re,urllib,urllib2

#--------------
No = 1
n = 9
#---------------
s = True
b = True
err = 0
def download_image(url, save_path): 
     urllib.urlretrieve(url, save_path)
#'http://www.tuigirl8.com/tu/no/n.jpg'
def download(No,n):
    html = 'http://www.tuigirl8.com/tu/%d/%d.jpg'%(No,n)

    dic = './%d_%d.jpg'%(No,n)
    try:
        response = urllib2.urlopen(html)  
        html1 = response.read()  
    except urllib2.URLError, e: 
        print'这个路径下没有图片,跳过'
        s = False 
        return s

    else:
        download_image(html,dic)
        print'下载成功%s'%dic
        s = True
        return s
while b:

    if download(No,n) == False:
        err+=1
        if err == 15:
            No+=1
    n+=1        


print 'ok!'

3.4版

#-*-coding:utf-8-*-
#python3.4 project

import urllib.request,urllib.error

#--------------
No = 1
n = 9
#---------------
s = True
b = True
err = 0
def download_image(url, save_path): 
    urllib.request.urlretrieve(url, save_path)
#'http://www.tuigirl8.com/tu/no/n.jpg'
def download(No,n):
    html = 'http://www.tuigirl8.com/tu/%d/%d.jpg'%(No,n)

    dic = './%d_%d.jpg'%(No,n)
    try:
        response = urllib.request.urlopen(html)  
      #  html= response.()  
    except urllib.error.URLError as e: 
        print('这个路径下没有图片,跳过')
        s = False 
        return s

    else:
        download_image(html,dic)
        print('下载成功')
        s = True
        return s
while b:

    if download(No,n) == False:
        err+=1
        if err == 15:
            No+=1
    n+=1        


print ('ok!')

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/broven/p/4730810.html

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐