批量获取图片(下)

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

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.脑图

相关文章
|
8月前
|
JavaScript 前端开发 Shell
技术实践:快速批量下载网站图片资源实现方法
本文介绍了三种批量下载图片的方法:使用HTML页面、Node.js脚本和Bash结合Wget命令。重点推荐第三种,仅需几行命令即可高效完成下载,无需编程环境,兼容性强,适合快速批量获取网络图片资源。
1262 0
|
前端开发 数据可视化 JavaScript
前端echarts加标记点及标记线和提示框
通过本文的介绍,希望您能够深入理解和掌握如何在ECharts中添加标记点、标记线和提示框,并在实际项目中灵活运用这些功能,提升数据可视化效果。
2373 4
|
Windows
win11出现:终止代码:SYSTEM SERVICE EXCEPTION解决方案实列(不懂请私信up主)
终止代码解释:SYSTEM_SERVICE_EXCEPTION,又称为异常处理程序,是一种常见的蓝屏错误码,代表Windows系统检测到内核代码发生错误,无法响应某些系统服务,而且无法继续运行。它特别容易发生在许多设备驱动程序中,如显示驱动程序和音频驱动程序,因为他们成为Windows系统的必要组成部分。
4790 0
|
设计模式 Java Linux
Linux的20个常用命令
Linux的23个常用命令
Linux的20个常用命令
|
存储 前端开发 JavaScript
select2 使用详解
select2 使用详解
871 0
|
网络性能优化 数据安全/隐私保护
专线网络与家庭宽带区别(基础篇)
专线网络: 专线是运营商为集团客户提供各种速率的专用链路,直接连接主干网络,方便快捷的高速互联网上网服务。简单来说,网络专线就是为某个机构例如企业、银行等单独拉的一条独立的网络,让用户的数据传输变得更加可靠可信。
5839 0
|
JSON 前端开发 JavaScript
JavaScript HTTP客户端库axios介绍
HTTP客户端是很多时候我们都需要用到的功能,今天就来介绍一个比较流行的JavaScript编写的HTTP客户端库axios。 安装 如果你会使用npm的话,可以使用npm来装,非常方便。
1275 0
|
8天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
|
9天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1886 15