当前位置: 首页 > news >正文

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

安装

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 osurl = '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:# 第二层urlimg_url = 'https://pic.netbian.com' + img_urlrr = 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]# 高清图片的srcimg_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.lryc.cn/news/167244.html

相关文章:

  • 韩信点兵:求韩信一共有多少兵
  • 10个简单但超级有用的Python装饰器
  • DataGrip 2023 年下载、安装教程、亲测可用
  • 6.SpringEL与List,Map
  • 【Oracle】使用 SQL Developer 连接 Oracle 数据库
  • PostgreSQL 事务并发锁
  • CANoe-Model Editor无法修改ARXML文件的问题、E2E在SOME/IP通信中的使用问题
  • Conan安装第三方依赖库时SSL验证失败解决办法
  • 基于springboot+vue的大学生智能消费记账系统
  • Java——》synchronized的使用
  • vue+element使用阿里的图标库保存图标
  • Day 01 web前端基础知识
  • Redis 高可用之持久化
  • 生成元 rust解法
  • 某ERP系统存在RCE漏洞
  • ElasticSearch 因为索引字段改变,平滑迁移索引
  • invalid use of incomplete type ‘class Ui::xxx‘
  • 变压器寿命预测(python代码,Logistic Regression模型预测效果一般,可以做对比实验)
  • 微信小程序-增加隐私协议弹窗
  • 分布式事务解决方案之可靠消息最终一致性
  • ROS学习笔记(四)---使用 VScode 启动launch文件运行多个节点
  • 编译Redis时报错: jemalloc/jemalloc.h: No such file or directory
  • LLM 05-大模型法律
  • 1-5 AUTOSAR数据交换文件ARXML
  • 学习尚硅谷HTML+CSS总结
  • 自己设计CPU学习之路——基于《Xilinx FPGA应用开发》
  • 数据结构与算法:树
  • Spark 【Spark SQL(一)DataFrame的创建、保存与基本操作】
  • 026-从零搭建微服务-文件服务(二)
  • Jenkins 页面部分显示Http状态403 被禁止