使用Python编写简单网络爬虫实例:爬取图片

🍎个人主页

🏆个人专栏:日常聊聊

⛳️ 功不唐捐,玉汝于成


目录

​编辑

简介

步骤

1. 安装依赖库

2. 创建目录

3. 发送HTTP请求并解析页面

4. 查找图片标签并下载图片

注意事项

结语

我的其他博客


简介

网络爬虫是一种自动获取网页信息的程序,而Python由于其简洁而强大的语法,常被用于编写网络爬虫。在本博客中,我们将介绍一个简单的Python网络爬虫示例,用于爬取图片。该示例使用了第三方库requests来发送HTTP请求,以及BeautifulSoup来解析HTML页面。

步骤

1. 安装依赖库

确保你已经安装了以下依赖库:

pip install requests beautifulsoup4

2. 创建目录

创建一个目录用于保存下载的图片,我们在示例中将其命名为downloaded_images

import osif not os.path.exists('downloaded_images'):os.makedirs('downloaded_images')

3. 发送HTTP请求并解析页面

使用requests库发送HTTP请求获取页面内容,然后使用BeautifulSoup解析HTML页面。

import requests
from bs4 import BeautifulSoupurl = 'https://example.com'  # 替换为实际的目标网站URL
response = requests.get(url)
html_content = response.text
soup = BeautifulSoup(html_content, 'html.parser')

4. 查找图片标签并下载图片

找到页面中的所有图片标签,遍历这些标签并下载图片。

from urllib.parse import urljoinimg_tags = soup.find_all('img')for img_tag in img_tags:img_url = img_tag.get('src')img_url = urljoin(url, img_url)img_data = requests.get(img_url).contentimg_name = os.path.join('downloaded_images', os.path.basename(img_url))with open(img_name, 'wb') as img_file:img_file.write(img_data)print(f'图片保存成功:{img_name}')

注意事项

  • 实际网站可能有不同的HTML结构和图片链接格式,根据目标网站的具体情况进行适当的修改。
  • 合法使用爬虫,尊重网站的robots.txt文件,避免对目标网站造成不必要的压力。

结语

这个简单的网络爬虫示例演示了如何使用Python获取网页内容并下载图片。通过学习这个例子,你可以进一步了解网络爬虫的基本原理和Python中常用的爬虫工具。在实际应用中,请确保遵守相关法律法规和网站的使用规定。希望这个博客能帮助你入门网络爬虫的世界!

我的其他博客

探索灵活性与可维护性的利器:策略(Strategy)模式详解-CSDN博客

深入探讨敏捷开发项目管理流程与Scrum工具:构建高效团队与卓越产品的秘诀-CSDN博客

vue的生命周期-CSDN博客

什么是tomcat?tomcat是干什么用的?-CSDN博客

Linux 压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法-CSDN博客

腾讯-轻量应用服务器centos7中宝塔安装MySQL8.0出现内存不足-CSDN博客

JVM的类的生命周期-CSDN博客

多线程------Future异步任务-CSDN博客

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

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

相关文章

等保测评主要保护哪些方面的安全?

等保测评是经公安部认证的具有资质的测评机构,依据国家信息安全等级保护规范规定,受有关单位委托,按照有关管理规范和技术标准,对信息系统安全等级保护状况进行检测评估的活动。那么企业做等保“保”的是什么呢? 等保主…

(自适应手机版)全屏滚动装修装潢公司网站模板

(自适应手机版)全屏滚动装修装潢公司网站模板 PbootCMS内核开发的网站模板,该模板适用于装修公司网站、装潢公司网站类等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可; 自适应手机版,同一个后台&a…

SQL Server 安装教程

安装数据库 1、启动SQL Server2014安装程序,运行setup.exe文件,打开”SQL Server安装中心“对话框,单击左侧 的导航区域中的”安装“选项卡。 2、选择”全新SQL Server独立安装或向现有安装添加功能“,启动SQL Server2014安装向导…

自动驾驶技术入门平台分享:百度Apollo开放平台9.0全方位升级

目录 平台全方位的升级 全新的架构 工具服务 应用软件(场景应用) 软件核心 硬件设备 更强的算法能力 9.0版本算法升级总结 更易用的工程框架 Apollo开放平台9.0版本的技术升级为开发者提供了许多显著的好处,特别是对于深度开发需求…

LVS+Keepalived 高可用集群

一.Keepalived工具介绍 1.支持故障自动切换(Failover) 2.支持节点健康状态检查(Health Checking) 3.基于vrrp协议完成地址流动 4.为vip地址所在的节点生成ipvs规则(在配置文件中预先定义) 5.为ipvs集群的各RS做健康状态检测 6.基于脚本调用接口完成脚本中定义的功能&…

MyBatis ${}和#{}区别

sql防注入底层jdbc类型转换当简单类型参数$不防止Statment不转换value#防止preparedStatement转换任意 除模糊匹配外,杜绝使用${} MyBatis教程,大家可以借鉴 MyBatis 教程_w3cschoolMyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。…

RPC(5):AJAX跨域请求处理

接上一篇RPC&#xff08;4&#xff09;&#xff1a;HttpClient实现RPC之POST请求进行修改。 1 修改客户端项目 1.1 修改maven文件 修改后配置文件如下&#xff1a; <dependencyManagement><dependencies><dependency><groupId>org.springframework.b…

数据智慧:如何利用可视化提升效率

数据可视化是一项强大的工具&#xff0c;能够显著提高工作效率和决策的准确性。下面我就以可视化从业者的角度&#xff0c;简单谈谈数据可视化是如何助力效率提升的。 直观理解复杂数据 数据可视化将抽象的数据转化为图表、图形或仪表盘&#xff0c;使数据更易于理解。这种直观…

Linux系统之部署Linux管理面板1Panel

一、介绍 1.1简介 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。 1.2特点 快速建站&#xff1a;深度集成 Wordpress 和 Halo&#xff0c;域名绑定、SSL 证书配置等一键搞定&#xff1b; 高效管理&#xff1a;通过 Web 端轻松管理 Linux 服务器&#xff0c;包括应用管…

[最后一个月征稿、ACM独立出版】第三届密码学、网络安全和通信技术国际会议(CNSCT 2024)

第三届密码学、网络安全和通信技术国际会议&#xff08;CNSCT 2024&#xff09; 2024 3rd International Conference on Cryptography, Network Security and Communication Technology 一、大会简介 随着互联网和网络应用的不断发展&#xff0c;网络安全在计算机科学中的地…

【线性代数】两个向量组等价,其中一个向量组线性无关,另一个向量组也是线性无关吗?

一、问题 两个向量组等价,其中一个向量组线性无关,另一个向量组也是线性无关吗? 二、答案 不一定,当两个向量组中的向量个数也相同时,结论才成立.若向量个数不相同,结论不成立. 例如&#xff1a; 向量组一&#xff1a;(1,0),(0,1) 向量组二&#xff1a;(1,0),(0,1),(1,1) 两…

MSVC编译 openssl windows 库

开发需要在windows下集成 openssl 库&#xff0c;参考官方指导完成了编译&#xff1a;openssl/NOTES-WINDOWS.md at master openssl/openssl 不过&#xff0c;最后还是走了直接下载的捷径。 1. 安装 ActivePerl 需要在 ActiveState 注册账户&#xff0c;之后彼会提供具体的…

CentOS安装Nginx

1、yum安装nginx yum install -y nginx 2、nginx启动、关闭 // 查看状态 systemctl status nginx// 运行 systemctl start nginx// 停止 systemctl stop nginx 若使用systemctl start nginx启动时报80端口被占用&#xff1b;&#xff08;原因可能是 你直接使用 nginx命令启…

webpack知识点总结(基础应用篇)

一、为什么需要webpack 1.为什么使用webpack ①传统的书写方式&#xff0c;加载太多脚本会导致网络瓶颈&#xff0c;如不小心改变JavaScript文件加载顺序&#xff0c;项目会崩溃&#xff0c;还会导致作用域问题、js文件太大无法做到按需加载、可读性和可维护性太低的问题。 ②…

Vue+ElementUI前端添加展开收起搜索框按钮

1、搜索框添加判断 v-if"advanced" <el-form-item label"创建日期" v-if"advanced"><el-date-pickerv-model"daterangeLedat"size"small"style"width: 240px"value-format"yyyy-MM-dd"type&q…

深入了解常见的应用层网络协议

目录 1. HTTP协议 1.1. 工作原理 1.2. 应用场景 1.3. 安全性考虑 2. SMTP协议 2.1. 工作原理 2.2. 应用场景 2.3. 安全性考虑 3. FTP协议 3.1. 工作原理 3.2. 应用场景 3.3. 安全性考虑 4. DNS协议 4.1. 工作原理 4.2. 应用场景 4.3. 安全性考虑 5. 安全性考虑…

scrapy的入门和使用

scrapy的入门使用 学习目标&#xff1a; 掌握 scrapy的安装应用 创建scrapy的项目应用 创建scrapy爬虫应用 运行scrapy爬虫应用 scrapy定位以及提取数据或属性值的方法掌握 response响应对象的常用属性 1 安装scrapy 命令:     sudo apt-get install scrapy 或者&#x…

持续集成交付CICD:K8S 自动化完成前端项目应用发布与回滚

目录 一、实验 1.环境 2.GitLab新建项目存放K8S部署文件 3.Jenkins手动测试前端项目CD 流水线代码&#xff08;下载部署文件&#xff09; 4. 将K8S master节点配置为jenkins从节点 5.K8S 手动回滚前端项目版本 6.Jenkins手动测试前端项目CD 流水线代码&#xff08;发布应…

C++学习笔记(十六)

一、多态 1. 多态的基本概念 多态是C面向对象三大特性之一 多态分为两类 1. 静态多态&#xff1a;函数重载 和 运算符重载属于静态多态&#xff0c;复用函数名 2. 动态多态&#xff1a;派生类和虚函数实现运行时多态 静态多态和动态多态区别&#xff1a; 1. 静态多态的函…

useConsole的封装,vue,react,htmlscript标签,通用

之前用了接近hack的方式实现了console的封装&#xff0c;目标是获取console.log函数的执行&#xff08;调用栈所在位置&#xff09;所在的代码行数。 例如以下代码&#xff0c;执行window.mylog(1)时候&#xff0c;console.log实际是在匿名的箭头函数()>{//这里执行的} con…