前言

由于工作需要制作照片墙,就顺便爬了一波美景图,用来练手。

爬取

先给出我爬取的网站地址 http://www.win4000.com/zt/guowaifengguang_1.html

网站分析

这里的选择器很多,有很多组合方式,我这里给出最简单的’.Left_bar li’,这样可以定位到每个li,然后再依次获取当中图片和文本。

需要注意的是获得的图片链接只是缩略图,去除掉尺寸即可访问原图。

代码

import re
import requests
from pyquery import PyQuery as pq
# 控制页数
for page in range(1, 6):response = requests.get("http://www.win4000.com/zt/guowaifengguang_"+str(page)+".html")html = response.textdoc = pq(html)# 获得图片和标题所在标签构成的数组array = doc.find(".Left_bar li")# 遍历所得的数组for item in array.items():title = item.text()     # 取出标题文字img = item.find("img")  # 定位到其中的img标签thumb = img.attr("data-original")   # 取出img的data-original属性,实际上是缩略图的链接pattern = re.compile(r'(_\d{3}_\d{3})') # 描述缩略图尺寸的正则表达式src = re.sub(pattern, "", thumb)    # 去掉缩略图尺寸的限制即可得到原图链接# 下载图片pic = requests.get(src)with open("./pics/"+title+".jpg", 'wb') as f:f.write(pic.content)f.flush()print(title)print(src)

接着去自己的目录下就能看到下载的图片了

照片墙

import os
from PIL import Image
titles = os.listdir("./pics")   # 获得所有图片的文件名列表
lines=10        # 每行的图片数
each_width=192  # 每张图片的宽
each_height=108 # 每张图片的高
image = Image.new("RGB", (each_width*lines, each_height*lines)) # 准备空画布
# 记录坐标
x=0
y=0
# 循环画图
for i in range(0, lines**2):        # 这里我假定行列图片数一样,不一样的话可以简单修改img = Image.open("./pics/"+titles[i])img = img.resize((each_width, each_height)) # 调整尺寸image.paste(img, (x*each_width, y*each_height)) # 粘贴到指定位置x += 1if x == lines:     # 满一行重置x,y+=1x = 0y += 1
image.show()
image.save("beautiful_scenery_wall.jpg")

最后即可得到照片墙

动图

import os
import imageio
import numpy as np
from PIL import Image
from images2gif import writeGif     # 这个已经过时不推荐使用,会出现不少版本不兼容问题
outfilename = "my.gif" # 转化的GIF图片名称
filenames = os.listdir("./pics")
frames = []
count = 0
for image_name in filenames:im = Image.open("./pics/"+image_name)           # 读取方式上存在略微区别,由于是直接读取数据,并不需要后续处理im = im.convert("RGB")  # 通过convert将RGBA格式转化为RGB格式,以便后续处理im = np.array(im)frames.append(im)count += 1if count >=3:break
# writeGif(outfilename, frames, duration=0.1, subRectangles=False) # 这个已经过时不推荐使用,会出现不少版本不兼容问题
imageio.mimsave(outfilename, frames, 'GIF', duration=1) # 生成方式也差不多

python爬取各国美景图片制作照片墙和动图相关推荐

  1. python爬取微博热搜显示到折线图_Python爬取新浪微博热搜榜-Go语言中文社区

    我们如何爬取这50条热搜呢?今天写一个简单的方法供感兴趣的朋友们参考! 引用库: requests json lxml.etree bs4.BeautifulSoup引用方法如下: 如果没有下载的需要 ...

  2. python 爬取_我用Python爬取了妹子网100G的套图

    前言 最近在做监控相关的配套设施,发现很多脚本都是基于Python的.很早之前就听说其大名,人生苦短,我学Python,这并非一句戏言.随着人工智能.机器学习.深度学习的崛起,目前市面上大部分的人工智 ...

  3. python爬取微博热搜显示到折线图_微博热搜榜前20信息数据爬取进行数据分析与可视化...

    一.设计方案 1.主题式网络爬虫名称:微博热搜榜前20信息数据爬取进行数据分析与可视化 2.爬取内容与数据特征分析:爬取微博热搜榜前20热搜事件.排名与热度,数据呈一定规律排序. 3.设计方案概述:思 ...

  4. 我用Python爬取了妹子网200G的套图

    前言 最近在做监控相关的配套设施,发现很多脚本都是基于Python的.很早之前就听说其大名,人生苦短,我学Python,这并非一句戏言.随着人工智能.机器学习.深度学习的崛起,目前市面上大部分的人工智 ...

  5. 我用Python爬取了妹子网100G的套图

    前言 最近在做监控相关的配套设施,发现很多脚本都是基于Python的.很早之前就听说其大名,人生苦短,我学Python,这并非一句戏言.随着人工智能.机器学习.深度学习的崛起,目前市面上大部分的人工智 ...

  6. 为避免尬聊,我用Python爬取了一千多张斗图!

    前几天和女神聊天的时候实在是太尬了,因为没有足够的斗图表情包,整个聊天的气氛都带动不起来,所以抑郁不得志! 为了追到心目中的完美女神,我爬了一千多张斗图表情包,只为下一次聊天的时候,主动权都在我的手上 ...

  7. Python爬取酷狗音乐-详解(多图预警)

    目录 1.前言 2.分析一下 1. 2. 3. 3.代码解释 4.完整代码 5.结语 1.前言 前面发布了一篇关于QQ音乐爬取的教程,但对于我们这种文艺青年来说,一个平台的歌曲怎么够我们听的,也是因为 ...

  8. Python爬取20w+表情包,微信斗图谁怕谁!

    源 / python教程       文 / 小雨 有一次想要斗图 就在网上搜索表情包 然后发现了一个表情巨多的网站 不小心动起了邪念 产生了兴趣 那就 把它们存下来吧 用 requests 请求了一 ...

  9. python爬取各类基金数据,以『动图可视化』方式展示基金的涨跌情况

    01前言 去年接触基金,体会到了基金的香(真香),今天也是过年后基金开始交易的第一天,今天爬取『蛋卷基金』数据,通过pyecharts动图可视化方式展示基金的涨跌情况. 本文将围绕这三点去进行爬取数据 ...

最新文章

  1. 列标题 如何删除gridcontrol_DEV控件GridControl常用属性设置(转)
  2. 虚拟化服务器故障,修复vSphere vCenter服务器故障的技巧
  3. Python带*参数和带**参数
  4. zplane函数怎么用m文件调用_matlab中一个m文件怎么调用另一个m文件的函数
  5. 企业文化、业务架构与中台:移植阿里的中台战略能成功吗?
  6. 关于ENSP1.2.00.510安装过程中的一点心得
  7. Linux进程管理四大‘名捕’
  8. ch340串口驱动_敏矽微电子Cortex-M0学习笔记07-串口通信详解
  9. 超简单的方法找出QQ共同好友
  10. IAR工程适配GD32芯片
  11. 线性代数 --- LU分解(Gauss消元法的矩阵表示)
  12. 解决办法:My Endnote Library.enl constrains an incorrect path
  13. 杭州十二条经典登山路线
  14. JavaScript 身份证验证
  15. linux 验证码 权限,LINUX 下验证码无法显示怎么办
  16. Java就业知识点大全
  17. 精算未来会被计算机代替吗,年薪过百万还不用加班?揭开精算专业的真面目(下篇)...
  18. FPGA控制TDC-GPX2时间间隔测量(一)
  19. 互联网二次造富:从技术公司到运营平台的蜕变
  20. 嘉为蓝鲸CMP云管平台入选Gartner《中国云管理工具市场指南》

热门文章

  1. LE5010蓝牙芯片(凌思微)开发总结
  2. matlab用excel的数据,使用MATLAB对excel文件数据的读写操作
  3. 中文大写数字/金额转化
  4. 怎么将手机录音文件在电脑上转换成mp3
  5. 软件测试培训分享:哪家软件测试培训机构好?
  6. 我们用C语言开发出的YFS(分布式文件系统)
  7. BUUCTF:信息化时代的步伐
  8. ArcGIS如何拼接两张栅格图像
  9. NC客开单据 单据模板初始化后 集团下无模板
  10. 小议网站建设注意事项