Python—爬取图库(二):做马赛克拼图图片

爬取图库(二)
1. 选取网站,构造思路:
a.选取网址url:http://desk.zol.com.cn/dongman/haizeiwang/
b.分析布局,发现每页有很多小图片,然后一共有27页。我们就外循环嵌套一个range(0,26)的循环吧。
在这里插入图片描述
c.查看图片元素,发现每个img图片继承于’div’,class_='show listbox cc’下ul的children的a.li中。
在这里插入图片描述
d.获取页面调用一个函数,下载图片调用一个函数。

2.代码:

from urllib import request#引入request

from bs4 import BeautifulSoup as bs#引入BeautifulSoup重命名bs

from urllib.request import urlretrieve#引入图片链接下载方法urlretrieve

URL='http://op.hanhande.net/shtml/meitu.shtml'#网址

def Join(url):#定义获取页面函数
    
    response=request.urlopen(url)#建立链接
    
    html_data=response.read()#读取链接
    
    soup=bs(html_data,'html.parser')#转码
    
    return soup #返回soup

def GetPhotos(x): #定义获取图片函数
    
    Locations=Join(URL).find('div',class_='show listbox cc').ul#找到每个页面固定位置装有img的上层
    
    for pra in Locations.children:#循环
        
        if(pra !='\n'):#防止空行报错
            
            img_url=(pra.a.img.get('src'))#获取图片链接
            
            x+=1#x命名增加
            
            urlretrieve(img_url, 'G:\爬虫训练\图片\%05d.jpg'%x)#图片下载
            
            print("正在下载第%05d张图片"%x)#格式化给图片命名
            
x=0#全局变量
for j in range(0,26):#递归至27页
    
    GetPhotos(x)#调用下载第x页所有小图函数
    
    URL=Join(URL).find('div',class_='page').a.find_next('a').find_next('a').get('href')#重置URL为下一页URL
    
    x+=50#每一页最多允许下载的量50
    
    print(URL)#发现第七页开始图片已损坏

4. 结果分析及进步方向:
a.图片还是选择了小图,文件小一点。*
b.图片数量有600多张算是一种进步*
c.明天加油!*在这里插入图片描述
4. 图片库处理:
AndreaMosaic详情请参略此处。
5. 成果:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值