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

爬虫:xpath模块及昵图网实例

xpath模块

from lxml import etreestr1 = """
<div><ul><li class="item-0"><a href="link1.html">first item</a></li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-inactive"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1"><a href="link4.html">fourth item</a></li><li class="item-0"><a class="test" href="link5.html">fifth item</a>111</li><li class="item-0" vmid="10023898942">bsajkfhsdbfhjsdgbhfds</li></ul></div>
"""
# 将字符串转化为html对象
strTree1 = etree.HTML(str1)
print(strTree1.xpath('//li/text()')) #获取所有li里面的内容,这里只能获取直属li里面的内容
print(strTree1.xpath('//li/@class'))
# xpath中的下标,是从1开始的
print(strTree1.xpath('//li[3]/a/@href'))
# xpath中没有负数下标,若从右向左取,利用last获取最后一个 通过减一减二的方式获取倒数第二个倒数第三个
print(strTree1.xpath('//li[last()-1]/text()'))
# 获取指定属性值的标签
print(strTree1.xpath('//li[@class="item-1"]//text()'))

昵图网实例

from requests_html import HTMLSession
from lxml import etreesession = HTMLSession()
url = 'https://soso.nipic.com/?q=%E7%BE%8E%E5%A5%B3'response = session.get(url)
html = etree.HTML(response.text)imgNames = []
imgUrls = []
for i in range(1, 6):img_name = html.xpath(f'//ul[@id="img-list-outer"]/li[{i}]/a/img/@alt')img_url = html.xpath(f'//ul[@id="img-list-outer"]/li[{i}]/a/img/@data-original')imgNames.append(img_name[0])imgUrls.append('https:' + img_url[0])for i in range(len(imgUrls)):with open('美女\\' + imgNames[i] + '.jpg', 'wb') as f:f.write(session.get(imgUrls[i]).content)  # content就是将响应转化为二进制内容

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 宏编程:C++宏、Rust宏和Lisp宏比较
  • [GWCTF 2019]我有一个数据库1
  • 24年电赛——自动行驶小车(H题)MSPM0G3507-编码电机驱动与通用PID
  • unity 小怪播放动画导致ui抖动
  • C-V2X通信协议
  • 正点原子imx6ull-mini-Linux驱动之Linux LCD 驱动实验(19)
  • 【数据泄露】最新 FBI 官员数据库泄露事件
  • createObjectURL的部分使用讲解
  • 锅总浅析防火墙
  • 三线程分别打印1、2、3顺序执行10次
  • 游戏加速器推荐 网游加速器排行榜
  • 快速将网站从HTTP升级为HTTPS
  • Git代码冲突怎么处理?
  • gptpdf深度解析:开源文档处理技术全攻略
  • AI人工智能分析王楚钦球拍被踩事件的真相
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • C# 免费离线人脸识别 2.0 Demo
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • express如何解决request entity too large问题
  • happypack两次报错的问题
  • JavaScript服务器推送技术之 WebSocket
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • SpringBoot 实战 (三) | 配置文件详解
  • Webpack入门之遇到的那些坑,系列示例Demo
  • Zepto.js源码学习之二
  • 分布式任务队列Celery
  • 关于Flux,Vuex,Redux的思考
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 悄悄地说一个bug
  • 树莓派 - 使用须知
  • 数组大概知多少
  • 数组的操作
  • 通过几道题目学习二叉搜索树
  • 由插件封装引出的一丢丢思考
  • 责任链模式的两种实现
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • HanLP分词命名实体提取详解
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​zookeeper集群配置与启动
  • ​卜东波研究员:高观点下的少儿计算思维
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • (13)DroneCAN 适配器节点(一)
  • (C语言)fread与fwrite详解
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • ***原理与防范
  • **python多态