90%的人学Python爬虫都干过这种事,别不承认!

可以说,我是因为想批量下载一个网站的图片,才开始学的python爬虫。当一张一张图片自动下载下来时,满满的成就感,也满满的罪恶感……哈哈哈!!!窈窕淑女,君子好逑,这篇文章就讲讲我采集的第一个网站:

在这里插入图片描述

一、实现目标

根据一个图集的入口地址,下载该图集中的所有图片。图集的入口地址如下:

https://www.yeitu.com/meinv/xinggan/20231110_33358.html

在这里插入图片描述

二、网站分析

我们的目标是下载图片,那就需要得到图片文件的地址。

在这里插入图片描述

而图片文件的地址肯定是在图片详情页的html代码中,因此,只需要得到图片详情页的地址,就可以从它的html代码中获取图片文件的地址。

在这里插入图片描述

而图片详情页的地址与图片集入口地址存在着联系,即图片集入口地址加上图片序列号可得到图片详情页的地址。

在这里插入图片描述

总结一下,图片集入口地址——图片详情页地址——图片文件地址。

三、代码编写

  1. 通过图片集入口地址获取该图片集的图片总数
def getPicCount(picSetPageUrl, headers):response = requests.get(url=picSetPageUrl, headers=headers)html = etree.HTML(response.text)picCount = html.xpath("//div[@class='pages uk-text-center']/a[last()-1]/text()")[0]return int(picCount)
  1. 通过图片集入口地址与图片序列号得到图片详情页地址的列表
def getPicPageUrlList(picSetPageUrl, picCount):picPageUrlList = []for index in range(picCount):picPageUrl = picSetPageUrl.replace('.html', '_'+str(index+1)+'.html')picPageUrlList.append(picPageUrl)return picPageUrlList
  1. 通过图片详情页地址的列表得到图片文件地址的列表
def getPicUrlList(picPageUrlList, headers):picUrlList = []for picPageUrl in picPageUrlList:response = requests.get(url=picPageUrl, headers=headers)html = etree.HTML(response.text)picUrl = html.xpath("//div[@class='article-body cate-6']//img/@src")[0]picUrlList.append(picUrl)return picUrlList
  1. 通过图片文件地址下载图片文件
def getPic(index, picUrl, headers):suffix = picUrl.split(".")[-1]response = requests.get(url=picUrl, headers=headers)with open('output/'+str(index+1)+'.'+suffix, 'wb') as file:file.write(response.content)

四、源码获取

如果需要完整源代码,可以关注微信公众号【愤怒的it男】,私聊号主获取。

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

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

相关文章

Android 大版本升级变更截图方法总结

Android 大版本升级变更截图方法总结 一、Android R (11) 平台二、Android S (12) 平台三、Android U (14) 平台 Android 原生的截屏功能是集成在 SystemUI 中,因此我们普通应用想要获取截图方法,就需要研读下 SystemUI 截屏部分的功能实现。 一、Androi…

Android 移动端编译 cityhash动态库

最近做项目, 硬件端 需要 用 cityhash 编译一个 动态库 提供给移动端使用,l 记录一下 编译过程 city .cpp // // Created by Administrator on 2023/12/12. // // Copyright (c) 2011 Google, Inc. // // Permission is hereby granted, free of charg…

java配置+J_IDEA配置+git配置+maven配置+基本语句

当前目录文件夹dir 进入文件夹cd 返回上一级cd.. 创建文件夹:mkdir 文件名删除文件夹:rd 文件夹名, 目录不为空不能直接删 rd /s 带子文件夹一起删 清屏cls 切换d盘才能进入 下载git地址: Git - Downloading Package (g…

使用youtube的api

如何使用youtube的data api https://console.cloud.google.com/apis/dashboard 到这个地方先启用api,找到YouTube Data API v3 这个api,启用它 然后创建凭据 去创建凭据,里面创建相应的客户端,web的需要填写redirect地址,就是回调用的.客户端不需要这个. 创建客户端不需要详…

一文读懂Allins-首个基于 AMM 的多链铭文资产交易协议

“Allins 是铭文赛道中基础设施类的代表,该协议致力于以 AMM 的方式推动铭文资产的流动性,并为铭文资产交易者提供更好的 UI/UX。” 2023年1月份后,比特币Ordinals协议的推出为铭文赛道的兴起奠定了基础。该协议以聪为单位将比特币划分&#…

ipa分发平台绑定域名有什么优势

大家好我是咕噜签名分发可爱多。今天跟大家分享一下,为什么建议大家将自己的域名绑定到分发平台(比如咕噜分发)。 将自己的域名绑定分发平台有几个原因和优势: 1. 专业性和品牌建设: 使用自己的域名可以让您的在线存…

消息队列有哪些应用场景?

分布式系统不同模块之间的通信,除了远程服务调用以外,消息中间件是另外一个重要的手段,在各种互联网系统设计中,消息队列有着广泛的应用。从本文开始,专栏进入分布式消息的模块,将讨论消息队列使用中的高频…

Windows如何安装使用TortoiseSVN客户端并实现公网访问本地SVN Server

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统,它与Apache Subversion(SVN)集成在一起,提供了一个用户友好的界面,方便用…

三防平板电脑定制参数_三防移动平板终端方案

这是一款搭载了低功耗高性能CPU的三防平板电脑。采用联发科MT6771处理器,内置4GB64GB内存和八核处理器,提供出色的性能和运行速度。同时,它运行着最新的安卓Android 11.0系统,全屏支持和屏幕内容显示的优化使其更加方便和简单易用…

【华大】HC32F420JATB-LQ48学习资料及开发环境

1. 产品特点 ⚫ 84MHz Cortex-M4 32位CPU平台 ⚫ 128K 字节 FLASH 存储器,具有擦写保护功能 ⚫ 24K 字节 RAM 存储器 ⚫ 6 通道 DMAC ⚫多达 52 个通用 I/O 管脚 ⚫ 时钟、晶振 ‒ 外部高速晶振 8MHz~32MHz ‒ 内部高速时钟 22MHz~24MHz ‒ 内部低速时钟 3…

GoWin FPGA, GPIO--- startup1

一个Bank只能用一个电压,假如同一个Bank,在引脚里设置不同的电压,编译不过。 解释说明 2. 错误引脚限制 以上编译设置会导致编译错误。 Floor planner说明

猫粮哪个牌子好又安全?安全的主食冻干猫粮牌子推荐

由于猫咪是肉食动物,对蛋白质的需求很高,如果摄入的蛋白质不足,就会影响猫咪的成长。而冻干猫粮本身因为制作工艺的原因,能保留原有的营养成分和营养元素,所以冻干猫粮蛋白含量比较高,营养又高,…

智能仓储革命:科聪料箱机器人助力高效物流转型

料箱机器人即料箱AGV是一种智能化物流搬运设备,它可以代替人力完成出库入库和搬运工作,可根据出入库生产出货需求,将货物从起点运送到终点,自动柔性完成货到人货到点的操作。 提升仓储和物流效率的自动化利器 料箱机器人的投用能…

使用ArcMap10.8修改tif影像的地理坐标系

最近有个tif数据转坐标系给我整岔了,用了定义投影的方法,坐标系是有了,可是范围区域数值没有改变,导致转出来的数据没法用,后面成功了,记一下方法便于今后查找。 如下是我在arcmap中打开的tif影像坐标系&a…

各级行政区划shp文件,34个省份可下载,来源可靠

基本信息. 数据名称: 行政区划 数据格式: Shp文件 数据时间: 2021年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据来源:网络公开数据、国务院发布的行政区划调整批复公告 数据可视化. 全国行政区划 广东省行政区划 深圳市行政区划 城市清单. 可下载数…

Swift爬虫采集唯品会商品详情

我有个朋友之前在唯品会开的店,现在想转战其他平台,想要店铺信息商品信息全部迁移过去,如果想要人工手动操作就有点麻烦了,然后有天找到我 ,让我看看能不能通过技术手段实现商品信息迁移。嫌来无事,写了下面…

Linux 进程信号

文章目录 信号的概览信号的产生信号的处理信号集操作信号的捕捉补充与说明 信号的概览 信号由软件或硬件产生发送给进程,进程对其做相应处理。信号是进程之间事件异步通知的一种方式,属于软中断。 Linux下的全部信号由指令kill -l查询 Linux 下指令的…

H264码流打包分析

H264码流打包分析 SODB 数据比特串-->最原始的编码数据 RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐。…

Ubuntu 虚拟机环境,编译AOSP源码

环境 : VMware虚拟机 Ubuntu 20.04.3 LTS 搭建配置开发环境 sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl…

创投课程第五期 | 超越比特币:探索BTC生态的无限可能

协会邀请了来自水滴资本(Waterdrip Capital)的投资总监——Elaine,作为VC创投课程第5期的嘉宾,在北京时间12月17日(周日)晚上21:00 PM-22:00 PM,届时将与所有对Web3投资、创业心怀热忱的朋友们共同探讨《超越比特币&am…