python——批量爬取网页图片

关键点

  • 如果网页地址会变动则需要找到下一张图片的网页地址
  • 需要找到网页中图片的保存地址
    演示代码如下:
import urllib.request
import os 

#打开网址
def open_url(url):
    req = urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36')
    response = urllib.request.urlopen(req)
    html = response.read()
    return html
#获取下一张图片的网站   
def get_url(url):
    html = open_url(url)
    html = html.decode('utf-8')
    find_url = html.find('fr direction-after')   
    find_url_first = html.find('href=',find_url -80)
    find_url_end = html.find('.cn"',find_url - 15)
    find_url_first += 6
    find_url_end += 3
    return html[find_url_first:find_url_end]
    
 #获取图片路径   
def  get_img(url):
    html = open_url(url)
    html = html.decode('utf-8')
    find_img = html.find('content-pic')  
    find_img_first = find_img + 29
    find_img_end = find_img + 44
    return html[find_img_first:find_img_end]

#下载图片
def down_picture(count,folder='ooxx'):
    if os.path.exists(folder) == False:
        os.mkdir(folder)
    os.chdir(folder) 
    while count :     
        url = 'http://towmu.huanxiangdianyingyuan.cn'
        img_url = get_img(url)
        end = str(img_url.split('/')[2])
        end = end.split('.')
        enddouble = str(end[1]).split('"')[0]
        with open(end[0] +'.'+ enddouble,'wb') as f:
            _url = url + img_url
            img = open_url(_url)
            f.write(img)
        url = get_url(url)
        count = count - 1
#交互界面
count = int(input('输入的下载的张数:'))
folder =input('输入保存的文件夹:')
down_picture(count,folder)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值