首页 > 其他分享 >爬取图片并合成

爬取图片并合成

时间:2022-12-07 04:11:06浏览次数:59  
标签:img 合成 爬取 image print new resp 图片

爬取的网址url

import requests
from lxml import etree
from time import sleep


# 爬取多页页的代码
def pageTotall(num=None):
    for i in range(num):  # 从0到68
        if i == 0:
            i = ''
            page = f'index{i}.htm'

        else:
            page = f'index_{i}.htm'

        url = f'http://www.netbian.com/mei/{page}'
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
        }

        resp = requests.get(url=url, headers=headers)
        resp.encoding = 'gbk'  # 如乱码,显示中文
        # print(resp.text) 打印返回的html

        e = etree.HTML(resp.text)
        img_urls = e.xpath('//div[@class="list"]/ul/li/a//img/@src')
        img_names = e.xpath('//div[@class="list"]/ul/li/a//img/@alt')

        for n, u in zip(img_names, img_urls):
            # print(f'图片名:{u}\t地址:{n}')
            # 图片响应
            img_resp = requests.get(url=u, headers=headers)
            with open(f'./img_totals/{n}.jpg', "wb") as f:   
                f.write(img_resp.content)
            print(f'正在下载第{i}页: 图片名为:{n}')
            sleep(1)  # 延迟时间 防止被封


num = int(input("请输入你要打印的页数:"))
pageTotall(num)

将爬取的图片进行合成 (以后可以用的到,只需把图片放到指定文件夹即可)

# 处理图片的工具 这里我使用 pillow
from PIL import Image
import os  # 自带工具,专门来处理文件

im = Image.open('img_f/咳咳.jpg')  # 打开文件
print(im.size) # 大小
w,h = im.size

"""
下次合成图片只需改这里即可
"""
image_row = 4  # 生成的行
image_column = 4  # 生成的列

# print(os.listdir('./img_f'))
# 存储了所有名字
names = os.listdir('./img_f')

# for n in os.listdir('./img_f'):
#     print(n)

# 新的画布
new_img = Image.new('RGB',(image_column*w,image_row*h ))
for y in range(image_row):
    for x in range(image_column):
        o_img = Image.open('./img_f/' + names[image_column*y + x]) # 打开要合成的图片
        new_img.paste(o_img,(x*w,y*h))
new_img.save('new_img.jpg')

标签:img,合成,爬取,image,print,new,resp,图片
From: https://www.cnblogs.com/socoo-/p/16961962.html

相关文章

  • 谷歌街景爬取、谷歌地图街景破解api额度限制 无限量抓取街景方法、谷歌街景高清全景图
    我们在获取谷歌街景时,都可以想到通过官方的GoogleStreetViewAPI进行爬取,但是谷歌街景的API是有额度限制的,并不适用于大规模的街景获取,另外官方API支持的分辨率的有限的......
  • LVGL引用图片方法
    ①官网转换图片​​Onlineimageconverter-BMP,JPGorPNGtoCarrayorbinary|LVGL​​点击转换即可。②导入项目③声明图片,这里有一个坑位声明需要把lv.conf.h里......
  • 非BMP TIF格式图片上传 屏幕显示该图片
    总所周知,SE78可以用来上传BMP和TIF格式的图片,但是SAP能不能上传GIFJPG等其他格式的图片呢?答案是肯定的,通过TCODE:OAER,在选择屏幕上填入要该图片的相关属性CLASSNAME,C......
  • 根据图片获得360°旋转图片
    1publicclassImageHelper2{3///<summary>4///以逆时针为方向对图像进行旋转5///</summary>6///<param......
  • 使用AsyncTask异步加载图片
    主要看看AsyncTask如何使用:MainActivity.java1.publicclassMainActivityextendsActivity{2.privatestaticfinalStringTAG="MainActivity";3.privat......
  • 前端直传图片到oss操作
    1.前端直传图片到oss操作:不经过后端,直接前段直传,阿里云也支持。   TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugue......
  • Vue中多条件图片路径通过Map存储获取避免嵌套if-else
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662前端接收到后台数据之后需进行多个条件......
  • 图片区域连接
    <p>点击太阳或其他行星,注意变化:</p><imgsrc="planets.gif"width="145"height="126"alt="Planets"usemap="#planetmap"><mapname="planetmap"><areashape="r......
  • 现代 CSS 之高阶图片渐隐消失术
    在过往,我们想要实现一个图片的渐隐消失。最常见的莫过于整体透明度的变化,像是这样:<divclass="img"></div>div{width:300px;height:300px;backgroun......
  • js 双指放大、拖动图片
    $(function(){vareleImg=document.querySelector('#image');varstore={scale:1};//缩放处理eleImg.addEventListener('touchstar......