python爬虫学习-批量爬取图片

python爬虫学习-批量爬取图片

  • 爬虫步骤
  • 爬取前十页图片到本地
    • 根据页码获取网络源码
    • 使用xpath解析网页
    • 解析网页并下载图片
    • 主函数如下

爬取的网站为站长素材(仅做学习使用)

在这里插入图片描述
爬取的目标网站为

https://sc.chinaz.com/tupian/qinglvtupian.html

如果爬取多页,需要依次遍历每一页,经过分析跳转其它页面的规律如下

https://sc.chinaz.com/tupian/qinglvtupian_N.html
N从2开始,除了第一页不同,后面跳转其它页面规律相同

爬虫步骤

  • 根据请求url地址获取网页源码,使用requests库
  • 通过xpath解析源码获取需要的数据
  • 获取到数据下载到本地

爬取前十页图片到本地

根据页码获取网络源码

def create_request(page):if page == 1:url = 'https://sc.chinaz.com/tupian/qinglvtupian.html'else:url = 'https://sc.chinaz.com/tupian/qinglvtupian_'+str(page)+'.html'header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'}request = urllib.request.Request(url,headers=header)#获取网络源码response = urllib.request.urlopen(request)content = response.read().decode('utf-8')return content

使用xpath解析网页

使用xpath需要在chrome中安装此插件,安装xpath完成后,按alt+shift+x就会出现黑框

//img[@class="lazy"]/@alt  #获取图片名称
//img[@class="lazy"]/@data-original  #获取图片地址

在这里插入图片描述

解析网页并下载图片

下载图片、网页、视频使用的函数为urllib.request.urlretrieve()

def down_load(content):tree = etree.HTML(content) #解析网页数据   解析本地的html文件  etree.parse('D:/pages/test.html')name_list = tree.xpath('//img[@class="lazy"]/@alt')# 图片会进行懒加载src_list = tree.xpath('//img[@class="lazy"]/@data-original')for i in range(len(name_list)):name = name_list[i]src = src_list[i]url = 'https:'+srcurllib.request.urlretrieve(url,filename='../loveImg/'+name+'.jpg')#先在当前目录下创建loveImg文件夹

主函数如下

if __name__ == '__main__':start_page = int(input("开始页"))end_page = int(input("结束页"))for page in range(start_page,end_page+1):context = create_request(page)down_load(context)

下载的图片会在loveImg目录
在这里插入图片描述

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

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

相关文章

大数据讲课笔记1.2 Linux用户操作

文章目录 零、学习目标一、导入新课二、新课讲解(一)用户账号管理1、用户与用户组文件2、用户账号管理工作 (二)用户操作1、切换用户(1)语法格式(2)切换到普通用户(3&…

NVH软件导入音频文件

我们经常会遇到一种情况是:车主上下班路上经常会听到一个异响,但车交到我们手上,我们怎么在外面去试车,都听不到这个异响,或者条件达不到重现不了这个异响。如果是这样,我们是不是有点崩溃?但&a…

jstree组件的使用详细教程,部分案例( PHP / fastAdmin )

jstree 组件的使用。 简介:JsTree是一个jquery的插件,它提交一个非常友好并且强大的交互性的树,并且是完全免费或开源的(MIT 许可)。Jstree技持Html 或 json格式的的数据, 或者是ajax方式的动态请求加载数…

公司团队规范研发流程概要

一、背景 ● 背景:XXX研发部门开发流程步骤以及开发工具,依赖版本,开发规范等相关信息。 ● 技术定位:All。 ● 目标群体:所有相关研发部门技术人员。 二、操作步骤 2.1 开发前的准备 准备工作一 开发相关账号开通…

中职网络安全应急响应—Server2228

应急响应 任务环境说明: 服务器场景:Server2228(开放链接) 用户名:root,密码:p@ssw0rd123 1. 找出被黑客修改的系统别名,并将倒数第二个别名作为Flag值提交; 通过用户名和密码登录系统 在 Linux 中,利用 “alias” 命令去查看当前系统中定义的所有别名 flag:ss …

软实力篇---第二篇

系列文章目录 文章目录 系列文章目录前言一、必知必会的几点二、必须了解的两大法则三、项目经历怎么写前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、必知必…

Echarts饼图中显示百分比

开发中遇到一个需求,要在饼图上显示数据百分比,下图: 查了echarts 文档,并不能通过简单的配置来实现,原因如下:在单个serie的label中,只能设置一个label,位置可以选择在饼图内部inne…

在线监控网址源码/ 网站监控工具源码/ 网站监控系统源码/定时任务/网站网址URL状态监控神器

源码介绍: 在线监控网址源码、 网站监控工具源码,它作为网站监控系统源码,有定时任务,支持卡密充值,是网站网址URL状态监控神器。让数据库监控更加简单和专业。远程云中监控、实时邮件告警、丰富的指标和图表、分析和…

【教学类-06-17】20231215 (题目填满55格)X-Y之间“加法题+题”

背景需求: 0-5加法、减法是大班孩子选择较多的题型,因为只有21题,做题速度快,完成后,,他们会问:“后面的空白格子做什么” “可以画画,自己出题目” 但是大部分孩子都不会自己出题目…

【导航栏内容的设置 Objective-C语言】

一、那接下来呢,我们就来做一做,关于导航控制器, 1.设置它顶部的导航栏儿内容的东西, 1)我们刚刚讲过的这个,通过代码去跳转、返回、 2)通过storyboard去跳转、返回、 但是,这两种情况,大家是不是已经注意到,导航栏里面,没有任何内容, 然后呢,返回,这是红色,…

C++ Qt开发:ProgressBar进度条组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ProgressBar进度条组件的常用方法及灵活运用。…

骨传导耳机可以保护听力吗?一文读懂骨传导耳机和开放式耳机的区别!

由于骨传导耳机通过人体骨骼来传递声音,不经过耳道,不会损伤耳膜以及内毛细胞,所以使用骨传导耳机不仅不会损伤听力,还能在一定程度上起到保护听力的作用。 一、骨传导耳机和开放式耳机的区别是什么? 由于骨传导耳机…

5G工业网关视频传输应用

随着科技的不断进步,5G网络技术已经成为了当前最热门的话题之一。而其中一个引人注目的领域就是5G视频传输和5G工业网关应用。在传统网络通信中,由于带宽和延迟的限制,视频传输常常受到限制,而工业网关应用也存在着链路不稳定、数…

【用三大件写出的开门烟花特效】

又到了一年一度的春节时期啦!昨天呢是北方的小年,今天是南方的小年,看到大家可以愉快的放烟花,过大年很是羡慕呀!辞旧岁,贺新春,今年我呀要放烟花,过春节!🧨。…

[已解决]HttpMessageNotReadableException: JSON parse error: Unexpected character:解析JSON时出现异常的问题分析与解决方案

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

小小手表探索更多 好玩伴也是好帮手

华为儿童手表 5X 不仅是孩子的好玩伴,也是家长的好帮手。全能形态让小小手表探索更多,高清双摄记录美好,离线定位随时掌握,绿色纯净守护成长,让孩子享受科技带来的安全与乐趣。

「新版」PyCharm 加载condav Environment / Conda executableis not found

在新版的 PyCharm 配置中,设置Conda环境不再与旧版本保持一致,对于新手而言可能不清楚如何加载,作者也是郁闷了好久,经过一顿输出发现需要通过加载conda配置,才调取conda虚拟环境,而不再是直接调取conda的虚…

Linux--fork创建子进程详解

目录 一.初识fork函数 二.fork的返回值 三.fork原理 1.fork是如何创建子进程的? 2.为什么fork会有两个返回值? 3.为什么父进程的返回值是子进程的pid,子进程返回值是0? 4.fork之后,父子进程谁先运行?…

【深度学习】强化学习(四)强化学习的值函数

文章目录 一、强化学习问题1、交互的对象2、强化学习的基本要素3、策略(Policy)4、马尔可夫决策过程5、强化学习的目标函数6、值函数1. 状态值函数(State Value Function)a. 状态值函数的定义b. 贝尔曼方程(Bellman Eq…