使用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,一经查实,立即删除!

相关文章

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

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

【js文件】谷歌地图 markerclusterer.js

谷歌地图,点聚合,所使用的js function MarkerClusterer(map, opt_markers, opt_options) {this.extend(MarkerClusterer, google.maps.OverlayView);this.map_ map;/*** type {Array.<google.maps.Marker>}* private*/this.markers_ [];/*** type {Array.<Cluster&…

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

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

SQL Server 安装教程

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

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

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

.gitignore和git lfs学习

The ninth day——12.18 1. .gitignore 忽略规则优先级 从命令行中读取可用的忽略规则当前目录定义的规则父级目录定义的规则&#xff0c;依次递推$GIT_DIR/info/exclude 文件中定义的规则core.excludesfile中定义的全局规则 忽略规则匹配语法 空格不匹配任意文件&#xff…

LVS+Keepalived 高可用集群

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

MyBatis ${}和#{}区别

sql防注入底层jdbc类型转换当简单类型参数$不防止Statment不转换value#防止preparedStatement转换任意 除模糊匹配外&#xff0c;杜绝使用${} MyBatis教程&#xff0c;大家可以借鉴 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;使数据更易于理解。这种直观…

openstack-keystone服务

文章目录 keystone服务安装和配置先决条件安装并配置组件运行以下命令来安装包。编辑文件 /etc/keystone/keystone.conf 并完成如下动作&#xff1a;初始化身份认证服务的数据库&#xff1a;初始化Fernet keys&#xff1a;Bootstrap the Identity service: 配置 Apache HTTP 服…

【算法题】1. 两数之和

目录 题目 题解 题目 给定一个整数数组nums和一个整数目标值target&#xff0c;请你在该数组中找出和为目标值target的那两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以…

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

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

AWS S3相关配置笔记

关闭 阻止所有公开访问 存储桶策略(开放外部访问) {"Version": "2012-10-17","Id": "S3PolicyId1","Statement": [{"Sid": "statement1","Effect": "Allow","Principal"…

[最后一个月征稿、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命令启…

Redis反序列化异常处理方法

文章目录 问题背景问题分析解决方案 问题背景 通过String类型存储&#xff0c;只不过Value是一个自定义对象。暂且叫这个类型为UserBo吧。 当我们通过redisTemplate.opsForValue().set(userId, userBo, 24, TimeUnit.HOURS)存入时并没有什么问题。 可是如果我们通过UserBo use…

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

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