批量获取图片(下)

简介: 批量获取图片(下)

1.问题分析

我们观察下之前获得的图片,可以发现图片的清晰度不够。


放大之后比较模糊,这样的图叫做缩略图,那该如何获得高清海报图片呢?


为了找到高清图片,我们需要对网页结构进行分析,找到高清图对应的链接。

2.获取高清图片

replace()函数中要传入两个参数,第一个参数是字符串被替换的内容,第二个参数是要替换成的新内容。

现在我们需要使用replace()函数,将链接中的s_ratio_poster替换成m。

3.访问读取文件

4.批量获取

这里我们已经获取了网页的图片,如何批量获取:我们观察发现不同的页面基本相同,每次翻页的

时候start后面的参数变化25,我们使用for循环获得这个数字,但是这个循环获得的是int行的数据

我们把数字和其他部分拼接的时候要求是字符串,我们需要把他转化成为字符串

str函数可以帮助我们解决这个问题,str()就可以转化成为字符类型

这样我们就可以把之前的代码加上for循环,就从单个的url获取到很多url了

5.代码

这里是获取网页图片,没有引入循环,如果实现翻页,需要利用今天的把之前的单个url去掉,使用

循环和字符串的拼接重新设置,更改的部分如下所示:

# 使用import导入requests模块
import requests
# 使用from..import从bs4模块导入BeautifulSoup
from bs4 import BeautifulSoup
# 将电影URL地址,赋值给变量url
url = "https://movie.douban.com/top250"
# 将User-Agent以字典键对形式赋值给headers
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"}
# 将字典headers传递给headers参数,添加进requests.get()中,赋值给response
response = requests.get(url, headers=headers)
# 将服务器响应内容转换为字符串形式,赋值给html
html = response.text
# 使用BeautifulSoup()传入变量html和解析器lxml,赋值给soup
soup = BeautifulSoup(html, "lxml")
# 使用find_all()查询soup中class="pic"的节点,赋值给content_all
content_all = soup.find_all(class_="pic")
# for循环遍历content_all
for content in content_all:
    # 使用find()查询content中的img标签,并赋值给imgContent
    imgContent = content.find(name="img")
    # 使用.attrs获取alt对应的属性值,并赋值给imgName
    imgName = imgContent.attrs["alt"]
    # 使用print输出imgName
    print(imgName)
    
    # 使用.attrs获取src对应的属性值,并赋值给imgUrl
    imgUrl = imgContent.attrs["src"]
    # TODO 使用replace()函数将链接中的s_ratio_poster替换成m,并赋值给imgUrlHd
    imgUrlHd=imgUrl.replace("s_ratio_poster","m")
    # TODO 使用requests.get()请求图片链接,赋值给imgResponse
    imgResponse=requests.get(imgUrlHd)
    # TODO 使用.content属性将响应消息转换成图片数据,赋值给img
    img=imgResponse.content
    # TODO 使用with语句配合open()函数以图片写入的方式打开文件
    # 用格式化将图片名字和.jpg格式组合
    # 打开的文件赋值为f
    with open(f"{imgName}.jpg","wb") as f:
        # TODO 使用write()将图片写入
        f.write(img)

6.脑图

相关文章
|
1月前
批量获取图片(中)
批量获取图片(中)
32 0
|
14天前
|
存储 Python
python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频
python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频
|
1月前
|
iOS开发 MacOS Python
批量获取图片(上)
批量获取图片(上)
28 0
从后台获取图片流(验证码)加载多次问题
从后台获取图片流(验证码)加载多次问题
从后台获取图片流(验证码)加载多次问题
|
Python
【图片操作】批量生成缩略图
在我们日常生活中,缩略图很大程度减少了我们内存的使用。如果我们看一张图片就必须加载完成后才能看,那么我们就会发现很多应用都变慢了很多,而且流量也消耗的很快。今天我们就来看看Python生成缩略图的操作。
299 0
|
数据安全/隐私保护
【图片操作】批量添加图片水印
现在盗图是非常常见的事情,许多人在使用图片时都不会标注图片的出处或者提及作者,这个时候水印就是个很好的东西了。我们可以给图片添加水印后再分享出去,这样就可以让其它人知道图片作者相关的信息。今天我们就带大家来实现水印的添加。
206 0
|
存储 编解码 前端开发
input上传图片并同步获取图片分辨率
🎈作为一名前端开发,页面交互少不了图片上传,但有时候我们需要对上传图片做一些限制,如尺寸要求和像素分辨率要求,所以这里我们一起来看看前端上传图片如何获取图片的分辨率。
328 0
|
前端开发
前端获取图片exif流信息
如果你是为了获取 exif 解析后的信息,那么你可以看这篇 前端获取图片exif信息,通过 exif-js 来获取的。 看到这里你要懵了,我为什么又要写一遍。emmmm...因为我需求变了,直接拿到 exif 部分的数据,然后 base64 提交。测试地址
461 0
前端获取图片exif流信息
|
前端开发 JavaScript 定位技术
前端获取图片exif信息
对又是我,每天都有新的需求。 这次的需求是上传图片的时获取图片的宽高、设备、光圈等信息。 不用考虑服务端做,他们肯定是不做。 pc、android、ios 都支持了,现在就缺少 web 这边上传的图片了。 上测试地址:https://www.lilnong.top/static/html/exif.html
200 0
前端获取图片exif信息
批量获得指定网站图片列表
Created by Jerry Wang, last modified on Sep 02, 2014
112 0
批量获得指定网站图片列表