Python实战:爬取网页图片

news2024/11/17 15:32:36

文章目录

  • 一、实战概述
  • 二、图片网站
  • 三、爬取图片
    • 1、编写程序,实现功能
    • 2、运行程序,查看结果
  • 四、实战小结

一、实战概述

  • 在本实战项目中,我们编写了一个Python程序,用于从指定的图片网站(https://pic.netbian.com/4kfengjing/)爬取图片。程序首先发送HTTP请求获取网页内容,然后利用lxml库的etree模块解析HTML,通过XPath定位并提取所有<img>标签的src属性,即图片的URL。最后,程序遍历所有图片URL,下载图片并保存到本地目录。运行程序后,我们可以通过控制台输出信息来确认图片是否下载成功,并查看保存在本地的图片。

二、图片网站

  • https://pic.netbian.com/4kfengjing/
    在这里插入图片描述

三、爬取图片

1、编写程序,实现功能

  • 创建爬取网页图片.py程序
    在这里插入图片描述
'''
功能:爬取网页图片
作者:华卫
日期:2024年9月26日
'''

import requests
from lxml import etree

# 定义网页地址
url = 'https://pic.netbian.com/4kfengjing/'

# 定义headers
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36'
}

# 发送请求,获取网页内容
response = requests.get(url, headers=headers)
content = response.content.decode('gbk')  # 根据网页编码方式解码,这里假设为gbk

# 解析网页内容
html = etree.HTML(content)

# 使用XPath提取所有图片链接
img_elements = html.xpath("//img/@src")

# 下载并保存图片
for img_src in img_elements:
    # 构建完整的图片URL
    img_url = 'https://pic.netbian.com' + img_src if not img_src.startswith('http') else img_src
    # 获取图片内容
    img_response = requests.get(img_url, headers=headers)
    img_content = img_response.content

    # 构建图片标题
    img_title = img_src.split('/')[-1]

    # 保存图片到本地
    with open('images/%s.jpg' % img_title, 'wb') as f:
        f.write(img_content)
    print('图片[{}]下载并保存成功~'.format(img_title))

2、运行程序,查看结果

  • 查看控制台输出信息
    在这里插入图片描述
  • 查看爬取到本地的图片
    在这里插入图片描述

四、实战小结

  • 在本次实战中,我们成功实现了一个Python脚本,用于从彼岸图网的指定页面爬取4K风景图片。通过分析网页结构,我们利用requests库获取网页内容,并使用lxml库的XPath功能提取图片URL。脚本下载图片并保存到本地目录,整个过程自动化,无需人工干预。此次实践不仅加深了对Python网络请求和解析库的理解,也锻炼了实际问题解决能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2171397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

西圣、漫步者头戴式耳机哪个音质好?热门主流头戴式耳机专业评测

一直以来头戴式蓝牙耳机凭借其独特的优势&#xff0c;逐渐成为了音乐爱好者、游戏玩家以及日常通勤者的首选&#xff0c;它们不仅融合了卓越的音质体验、便捷的无线连接&#xff0c;还融入了先进的降噪技术和人性化的佩戴设计&#xff0c;为用户带来了前所未有的听觉盛宴与舒适…

第十一章 分布式存储之哈希算法

目录 一、哈希取余分区 二、一致性哈希算法分区 三、哈希槽分区 在学习通过Docker进行Redis集群部署之前&#xff0c;简单聊一点Redis分布式集群存储相关的哈希算法问题&#xff1a; 一、哈希取余分区 2亿条记录就是2亿个KV&#xff0c;我们单机不行必须要分布式多机&…

高分作品《基于Java+MySQL图书销售管理系统》+源代码+文档说明

文章目录 源代码下载地址项目介绍项目功能界面预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 使用JavaSEJavaawtMySQL搭建的一个图书销售管理系统&#xff0c;主要涉及一个数据库&#xff0c;内含四张SQL表&#xff0c;管理员信息表&#xff0c;用…

Cesium 展示——倾斜摄影模型添加

文章目录 需求分析需求 这个图是网上随便找的,请忽略,就大概展示个加载后的样子。主要看代码思路和加载代码,代码中我不仅写了倾斜摄影加载的过程,还有加载后位置不太匹配进行的微调 分析 let tilesetUrlNew = /gt-qxsy/gt-caijian/tileset.json // 新的倾斜摄影模型 cons…

Redis在window下和linux下的区别

早期&#xff0c;redis只能运行在linux上&#xff0c;原因是底层调用的是epoll方法&#xff0c;而windows下没有该方法。除此之外&#xff0c;windows下也没有fork( )函数。最终为了强行能在windows上运行&#xff0c;使用的是select IOCP方式。 Epoll 是当事件资源满足时发出…

Python编码系列—Python责任链模式:打造灵活的请求处理流程

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

“天翼云息壤杯”高校AI大赛开启:国云的一场“造林”计划

文 | 智能相对论 作者 | 叶远风 2024年年初《政府工作报告》中明确提到了“人工智能”行动&#xff0c;人工智能的发展被提到前所未有的高度。 如何落实AI在数字经济发展中引擎作用&#xff0c;是业界当下面临的课题。 9月25日&#xff0c;“2024年中国国际信息通信展览会”…

java中的四种引用

在java中对象的引用有强、软、弱、虚四种&#xff0c;这些引用级别的区别主要体现在对象的生命周期、回收时机的不同。这里在已知结论的情况下对其进行验证。 准备工作 1. 设置内存 为方便调试&#xff0c;将内存设置为16MB 依次点击菜单栏的Run—>Edit Configurations …

常用性能优化方法

在一个Java项目中进行性能优化是至关重要的。性能优化能够提高项目的效率和响应速度&#xff0c;提升用户体验&#xff0c;并且可以节省服务器资源和成本。 首先&#xff0c;性能优化可以确保项目的高效运行。当项目在运行时&#xff0c;性能问题可能会导致应用程序变慢、响应时…

Python集成测试详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 软件开发过程中&#xff0c;确保代码的稳定性和功能性至关重要。集成测试是一项关键步骤&#xff0c;旨在验证不同模块或组件能够协同工作&#xff0c;实现预期的…

信息安全工程师(22)密码学网络安全应用

前言 密码学在网络安全中的应用极为广泛且深入&#xff0c;它通过多种技术手段确保数据的机密性、完整性和真实性。 一、数据加密 对称加密&#xff1a; 定义&#xff1a;使用相同的密钥进行加密和解密的过程。特点&#xff1a;加密和解密速度快&#xff0c;适用于大数据量的加…

机器学习笔记 - week6 -(十一、机器学习系统的设计)

11.1 首先要做什么 在接下来的视频中&#xff0c;我将谈到机器学习系统的设计。这些视频将谈及在设计复杂的机器学习系统时&#xff0c;你将遇到的主要问题。同时我们会试着给出一些关于如何巧妙构建一个复杂的机器学习系统的建议。下面的课程的的数学性可能不是那么强&#xf…

一个PDF样本册免费上传网站

​随着数字化时代的到来&#xff0c;PDF样本册已经成为企业、个人展示产品、成果的重要载体。然而&#xff0c;如何高效地分享这些专业文档&#xff0c;让更多人了解和欣赏&#xff0c;成为了一个亟待解决的问题。今天让我来教你怎么制作吧 一、制作步骤 1. 注册账号&#xff…

2024京东·雪浪小镇数字科技合肥交流会

数字科技与数字经济已成为构建现代化经济体系的重要引擎。 9月22日下午,2024京东雪浪小镇数字科技合肥交流会在合肥市泓瑞金陵大酒店成功召开。本次活动由雪浪小镇未来园区与京东科技联合主办,汇聚国内数字科技行业龙头企业、雪浪小镇工业互联网重点企业以及众多高成长性创业公…

C/C++语言基础--C++运算符重载以及其重载限制

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 通过前面几节&#xff0c;我们介绍了C的类与对象、构造与析构函数、拷贝、成员变量、特殊变量等相关知识&#xff0c;这一篇将详细介绍了C的运算符重载&#xff0c;我感觉这是C的一个很伟大的发明&#xff0…

[数据结构] 二叉树题目(一)

目录 一.翻转二叉树 1.1 题目 1.2 示例 1.3 分析 1.4 解决 ​编辑 二. 相同的树 2.1 题目 2.2 示例 2.3 分析 2.4 解决 三. 对称二叉树 3.1 题目 3.2 示例 3.3 分析 3.4 解决 一.翻转二叉树. - 力扣&#xff08;LeetCode&#xff09; 1.1 题目 1.2 示例 1.3 分…

猫头虎 分享已解决Bug: || Module not found: Can‘t resolve ‘react‘ 解决方案

&#x1f42f;猫头虎 分享已解决Bug&#xff1a; || Module not found: Cant resolve react 解决方案 摘要: 今天猫头虎带大家解决一个常见的前端问题&#xff0c;尤其是在 React 项目中&#xff0c;很多开发者在安装依赖包时&#xff0c;遇到过 Module not found: Cant resol…

基于大数据技术的颈椎病预防交流与数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

Mybatis详细教程 (万字详解)

Mybatis 3.5.14 来自于B站‘天气预报’,一名宝藏up,跟着他可以培养起独立解决编程问题的能力&#xff01;&#xff01;&#xff01; 01.简介 1.1 官网 官方中文网: MyBatis中文网 中文网参考手册 1.2 概念 MyBatis 是一款优秀的持久层框架&#xff0c;支持自定义 SQL, 存储过…

《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch9 策略梯度方法 9.3.2 无折扣情形下的梯度推导

v3 链接 9.3.2 无折扣情形下的梯度推导 平均奖励 r ˉ π \bar r_\pi rˉπ​ 的定义对折扣和无折扣情况都有效。在折扣情况下的梯度是一个近似值&#xff0c;它在无折扣情况下的梯度更优雅。 因为 无折扣奖励和 E [ R t 1 R t 2 R t 3 ⋯ ∣ S t s ] {\mathbb E}[…