python-xpath语法-爬取彼岸图4k高清动漫壁纸

news2024/11/15 15:47:19

安装

pip install lxml

导入

from lxml import etree

xpath使用路径表达式提取html文档中的元素或元素集,然后元素通过沿路径path或步steps来选取数据

XPath常用语法格式

表达式描述
div选取div元素的所有子元素
/div选取根元素div
ul//li选取ul元素下的所有li子元素
//@class选取所有具有class属性的元素
ul/li/[1]选取ul元素下的第一个li子元素
//div[@id=‘t2’]选取id属性为t2的所有div元素
//li[@class=‘box’]选取class属性为box的li子元素
/div/ui/li[@class=‘top’]选取根元素div下ul元素下的class属性为top的li子元素
//li/a/@href获取li元素下所有a元素的href值
//li/a/text()获取li元素下所有a元素的文本内容

使用xpath匹配数据实践

爬取彼岸图4k高清动漫壁纸 https://pic.netbian.com/4kdongman/

爬取第一页的图片

import requests
from lxml import etree
import os

url = 'https://pic.netbian.com/4kdongman/index.html'
r = requests.get(url)
r.encoding='gbk'
html = etree.HTML(r.text)# <Element html at 0x11647c63ec8>
img_urls = html.xpath("//div[@class='slist']/ul/li/a/@href")# ['/tupian/32274.html', '/tupian/32257.html', ...
for img_url in img_urls:
    # 第二层url
    img_url = 'https://pic.netbian.com' + img_url
    rr = requests.get(url=img_url)
    rr.encoding='gbk'
    img_html = etree.HTML(rr.text)
    img_name = img_html.xpath("//a[@id='img']/img/@title")[0]
    # 高清图片的src
    img_src = 'https://pic.netbian.com' + img_html.xpath("//a[@id='img']/img/@src")[0]
    rimg = requests.get(url = img_src)
    # 可以改文件夹的名字
    folder_name = 'dongman'
    if not os.path.exists(folder_name):
        os.mkdir(folder_name)
    # 保存图片
    with open(f'{folder_name}/{img_name}.jpg','wb') as f:
        f.write(rimg.content)
    print(img_name)

在这里插入图片描述
批量爬取多页图片

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

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

相关文章

MacBook苹果电脑重装、降级系统

1、下载balenaEtcher镜像启动盘制作工具 https://tails.net/etcher/balenaEtcher-portable.exe 2、选择从文件烧录选择下载好的Mac 镜像文件 百度网盘 请输入提取码&#xff08;Mac OS 10.10-12版本镜像文件&#xff09; 第二步选择目标磁盘&#xff0c;这里需要准备一块1…

【SpringMVC】自定义注解与AOP结合使用

目录 一、SpringMVC之自定义注解 1.1 Java注解简介 1.2 为什么要用注解 1.3 注解的分类 ⭐ 1.3.1 JDK基本注解 1.3.2 JDK元注解 1.3.3 自定义注解 1.4 自定义注解三种使用案例 1.4.1 案例一&#xff08;获取类与方法上的注解值&#xff09; 1.4.2 案例二&#xff0…

使用SSH地址拉取远程仓库代码报下面的错误

说明&#xff1a;配置了SSH秘钥后&#xff0c;使用SSH地址克隆代码&#xff0c;依旧无法拉取代码&#xff0c;提示下面这个信息。 Their offer&#xff1a;ssh-rsa&#xff0c;ssh-dss fatal&#xff1a;Could not read from remote repository. Please make sure you have the…

从一到无穷大 #15 Gorilla,论黄金26H与时序数据库缓存系统的可行性

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 引言 缓存系统的高效存在前提&#xff0c;在满足前提的情况下可以接受缺陷便没有理由不引入缓…

VEX —— Attribute type metadata

Houdini几何体属性有一些元数据metadata&#xff0c;用于指定属性中的数据是否表示某种变换transformation&#xff08;如位置或旋转&#xff09;&#xff0c;及几何体本身被变换时是否或如何被修改&#xff1b; Houdini理解以下信息类型值&#xff1a; “none”&#xff0c;无…

解决方案| anyRTC远程检修应用场景

背景 在这个科技飞速发展的时代&#xff0c;各行各业都要求高效运转。然而&#xff0c;当出现问题时&#xff0c;我们却常常因为无法及时解决而感到困扰&#xff0c;传统解决问题的方式是邀请技术人员现场解决问题&#xff0c;如果技术人员解决不了&#xff0c;还要邀请专家从…

做了五年功能测试麻木了,现在想进阶自动化测试该从哪里开始?

什么是自动化测试&#xff1f; 做测试好几年了&#xff0c;真正学习和实践自动化测试一年&#xff0c;自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念&#xff0c;广义上来讲&…

我的C#基础

using System; namespace HelloWorldApplication }TOC 欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。 为帮助您在CSDN创作的文章获得更多曝光和关注&#xff0c;我们为您提供了专属福利&#xff1a; 已注册且未在CSDN平台发布过…

【电源专题】案例:异常样机为什么只在40%以下电量时与其他样机显示电量差异10%,40%以上电量差异却都在5%以内。

本案例发生在一个量产产品的测试中,因为产品带电池,所以需要测试产品对于电池电量显示的精确程度。产品使用的是最简单的开路电压查表法进行设计。 案例测试报告的问题在于不同样机之间电量百分比存在差异,大部分是在3%~4%之间。但在7.2V电压时,能够差异10%左右。 在文章:…

基于Python计算PLS中的VIP值(变量投影重要性分析法)

sklearn中PLS回归模型并没有计算VIP值的方法,但VIP又是很重要的筛选变量方法。下附代码思路与完整代码。 计算公式: 其中: VIPj:对应于第j个特征的VIP值;p:预测变量的总数;A:PLS成分的总数;R矩阵:A个PLS成分中,每个成分a都对应一套系数wa将X转换为成分得分,系数矩…

重数和众数问题——C语言实现

题还是很简单的&#xff0c;理清思路就可以了♪(&#xff65;ω&#xff65;)&#xff89; 问题描述&#xff1a; 给定含有n个元素的多重集合S&#xff0c;每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。 例如&#xff0c;S{1&#xff0c;2&…

Mybatis的mapper接口实现原理

目录 1 概述2 动态代理和反射对象3 源码分析4 总结 1 概述 为啥mybatis的mapper只有接口没有实现类&#xff0c;但它却能工作&#xff1f; 说起mybatis&#xff0c;大伙应该都用过&#xff0c;有些人甚至底层源码都看过了。在mybatis中&#xff0c;mapper接口是没有实现类的&a…

Git(7)——使用Beyond Compare快速解决冲突

一、简介 根据前六章的学习&#xff0c;我们应该很清楚地感知到不同分支合并代码时产生的冲突是最让我们头疼的问题&#xff0c;因为他需要我们手动去解决冲突的文件&#xff0c;有没有一种方法可以快速地解决冲突呢&#xff1f;本篇文章将介绍如何使用Byond Compare去快速解决…

Deepin配置ibus

文章目录 Deepin配置ibus删除fcitx安装ibus配置ibus Deepin配置ibus Linux下小小输入法好多地方不兼容, 需要安装ibus输入框架 Deepin版本: Deepin20.9 删除fcitx sudo apt purge fcitx-bin fcitx-data fcitx-frontend-gtk2 fcitx-frontend-gtk3 sudo apt purge fcitx-modu…

商城系统开发,如何确保用户数据的安全性?

确保用户数据的安全性是商城系统开发中至关重要的一项任务。随着数字化时代的到来&#xff0c;用户的个人信息和交易数据已成为黑客和不法分子的重要目标&#xff0c;因此保护用户数据的安全性对于商城系统的成功运营至关重要。在开发商城系统时&#xff0c;以下几个方面是确保…

虚拟线上发布会带来颠覆性新体验,3D虚拟场景直播迸发品牌新动能

虚拟线上发布会是近年来在数字化营销领域备受关注的形式&#xff0c;而随着虚拟现实技术的不断进步&#xff0c;3D虚拟场景直播更成为了品牌宣传、推广的新选择。可以说&#xff0c;虚拟线上发布会正在以其颠覆性的新体验&#xff0c;为品牌带来全新的活力。 1.突破时空限制&am…

步态识别常见模块解读及代码实现:基于OpenGait框架

步态识别常见模块解读及代码实现&#xff1a;基于OpenGait框架 最近在看步态识别相关论文&#xff0c;但是因为记忆力下降的原因&#xff0c;老是忘记一些内容。因此记录下来方便以后查阅&#xff0c;仅供自己学习参考&#xff0c;没有背景知识和论文介绍。 目录 步态识别常见…

小米OPPO三星一加红魔全机型解锁BL详细教程合集-ROOT刷机必要操作

解锁BL一个熟悉又陌生的词汇&#xff0c;只要你刷机root过&#xff0c;你肯定都解锁BL成功过。我们简单的描述下BL是什么&#xff1f;BL全名bootloader&#xff0c;目前市面上全部机型&#xff0c;基本出厂全部BL处于锁定的状态锁定的BL机型&#xff0c;不支持刷入非官方固件或…

荣誉丨“Qspace|轻空间”荣获“盐城市零碳空间工程技术研究中心”称号

近日&#xff0c;盐城市科学技术局公布了《2023年度盐城市工程技术研究中心认定名单》&#xff0c;轻空间&#xff08;江苏&#xff09;膜科技有限公司荣誉入选。 工程技术研究中心是指主要依托城市综合实力和创新能力较强的企业、高校或科研院所,具有较完备的工程技术综合配套…

【生命的分支:揭秘二叉树的神奇编码】

1.树概念及结构 2.二叉树概念及结构 3.二叉树顺序结构及实现 4.二叉树链式结构及实现 内容回顾&#xff1a; 1、顺序表&#xff1a;数组 缺点&#xff1a; 中间或头部插入删除数据需要挪动数据&#xff0c;效率低。空间不够&#xff0c;需要扩容&#xff0c;扩容有消耗&…