当前位置: 首页 > 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就是将响应转化为二进制内容
http://www.lryc.cn/news/415673.html

相关文章:

  • 高级java每日一道面试题-2024年8月03日-web篇-forward和redirect有什么区别?
  • 如何让你的网站拥有更好的体验
  • opencascade AIS_TypeFilter AIS_XRTrackedDevice源码学习
  • 使用Spring AOP监控指定方法执行时间
  • 最新CSS3纵向菜单的实现
  • GooLeNet模型搭建
  • 使用ThreadLocal来存取单线程内的数据
  • elasticsearch教程
  • Arrays、Lambda表达式、Collection集合
  • 2024年前端趋势:全栈或许是不容错过的选择!
  • MySQL 实战 45 讲(01-05)
  • 仓颉编程语言入门 -- Array数组详解
  • C#初级——简单单例模式使用
  • 2024.07.29 校招 实习 内推 面经
  • 速盾:爬虫攻击和cc攻击的区别是什么?
  • Tomcat与Nginx的区别详解
  • 【大模型从入门到精通5】openAI API高级内容审核-1
  • JVM系列 | 对象的消亡3——垃圾收集器的对比与实现细节
  • C# Unity 面向对象补全计划 七大原则 之 开闭原则(OCP) 难度:☆ 总结:已经写好的就别动它了,多用继承
  • 微信防封指南请收好
  • 选择排序算法改进思路和算法实现
  • 【文件解析漏洞复现】
  • 【STL】 vector的底层实现
  • 责任链模式:解耦职责,优化请求处理
  • 【Scene Transformer】scene transformer论文阅读笔记
  • ESP32在ESP-IDF环境下禁用看门狗
  • 基于 uniapp html5plus API,怎么把图片保存到相册
  • 3.特征工程-特征抽取、特征预处理、特征降维
  • RISC-V (五)上下文切换和协作式多任务
  • Cornerstone加载本地Dicom文件第二弹 - Blob篇