python案例之图片下载

话不多说,先给各位老饕餮们上菜品鉴品鉴

在这里插入图片描述

正菜上了,接下来就是菜的制作过程了,在本文里,我把这道菜分成几个步骤讲解,下面搞起:

第一步:选材料

做菜嘛,第一部当然得先选择做菜的素材,这里我直接把我的材料放里面,比较辣,各位吃之前最好有个准备:

https://www.ku66.net/

第二步:处理厨具

食材选择完毕之后做菜前要先把厨具处理一下,不然有的菜可能会抗拒我们的厨具

url = 'https://www.ku66.net/'
head = {
    'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
}

m = requests.get(url, head).content.decode("gbk")
r = re.compile(r'<img src="(.+?)" width')
purl = r.findall(m)
print(purl)
print(len(purl))

在这里,我们给锅铲搭个外套,假装成食材不抗拒的东西,也就是我们的head,这个东西在谷歌里右键检查–>network–>f5刷新–>然后随便找个js文件点击进去在最下面就能看到真正的head长啥样,复制过来就行。

第三步:清洗食材

厨具处理完毕,在正式做菜之前我们要清洗我们的食材,不然轻则味道一言难尽,重则bug迭出。

def imgurl(i):
    m = requests.get(url, head).content.decode("gbk")
    r = re.compile(r'<img src="(.+?)" width')
    purl = r.findall(m)
    print(purl)
    return purl

清洗食材之前先用requests.get这个厨房工具拿取食材,保证食材的完好,然后根据不同的食材选定不同的编码清洗方式,有的食材要gbk方式,有的要utf-8方式,测试一下就行。

正式清洗食材我们要先在整个食材里知道哪些是我们能吃的,哪些是不能吃的,一般我们能吃的都是在<img src=标签里的,可能不同的食材长相略有不同,但大框架一定都是这个,然后我们只需要选取这里面的src="*(.+?)"这一段,这里的(.+?)就是我们最后要的食材的精华部分,其余的糟粕都可以去掉了。

第四步:制作起锅

食材清洗完毕就要开始制作我们的菜肴了,制作之前,我们先把放菜的碟子选定,如果没有的话就从碗橱里拿一个

save_path = '../photo'
    folder = os.path.exists(save_path)
    if not folder:
        os.makedirs(save_path)

OK,一切准备就绪,开始制作菜肴

img = urllib.request.urlopen(jurl[rn]).read()

没错,我们这道菜的制作过程异常简单,只需要一步就能完成,制作完成之后起锅

    with open(save_path + '/' + str(rn + 1) + '.jpg', 'wb') as f:
        f.write(img)
        print('开始下载 - - ->', rn + 1)

这里wb是指定二进制形式,如果使用别的模式的话大部分食材都不适应。

到这里整道菜的制作过程就讲完了,接下来就是给大家展示完整的制作方法了,话不多说,上菜:

import os
import urllib

import requests
import re

# 获取url
url = 'https://www.ku66.net/'
head = {
    'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
}


def imgurl(i):
    m = requests.get(url, head).content.decode("gbk")
    r = re.compile(r'<img src="(.+?)" width')
    purl = r.findall(m)
    print(purl)
    return purl


def getjpg(jurl, rn):
    save_path = '../photo'
    folder = os.path.exists(save_path)
    if not folder:
        os.makedirs(save_path)
    img = urllib.request.urlopen(jurl[rn]).read()
    with open(save_path + '/' + str(rn + 1) + '.jpg', 'wb') as f:
        f.write(img)
        print('开始下载 - - ->', rn + 1)


gurl = imgurl(url)
for n in range(len(gurl)):
    getjpg(gurl, n)
print('下载结束')


如果大家喜欢这道菜的话,记得点赞收藏,有问题可以评论区问我,拜拜

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值