安装lxml模块

pip install lxml

入门案例

from lxml import etreexml = """
<book><id>1</id><name>野花</name><price>123</price><nick>豆腐</nick><author><nick id="10086">周大枪</nick><nick id="10010">周芷若</nick><nick class="joy">周杰伦</nick><nick class="jolin">蔡依林</nick><div><nick>惹了</nick></div><span><nick>惹2</nick></span></author><partner><nick id="bbc">宝宝沉</nick><nick id="bbbc">宝宝不沉</nick></partner>
</book>
"""tree = etree.XML(xml)# /表示层级关系,第一个/是根节点,text()是拿文本
# ret = tree.xpath('/book/name/text()')
# // 表示所有后代
# ret = tree.xpath('/book/author//nick/text()')  # ['周大枪', '周芷若', '周杰伦', '蔡依林', '惹了']
# *表示任意节点
ret = tree.xpath('/book/author/*/nick/text()')  # ['惹了', '惹2']print(ret)

语法

from lxml import etreeparser = etree.HTMLParser(encoding="utf-8")
tree = etree.parse('b.html', parser=parser)
# ret = tree.xpath('/html/body/ul/li/a/text()')  # ['百度', '谷歌', '搜狗']
# ret = tree.xpath('/html/body/ul/li[1]/a/text()')  # ['百度']  []:表示索引
ret = tree.xpath("/html/body/ol/li/a[@href='dapao']/text()")  # ['大炮']  [@href='dapao']:对属性作筛选
print(ret)ol_li_list = tree.xpath('/html/body/ol/li')"""
['大炮']
['飞机']
['feiji']
['大炮']
['dapao']
['火车']
['huoche']
"""
for li in ol_li_list:ret2 = li.xpath('./a/text()')  #  ./代表相对查找print(ret2)ret3 = li.xpath('./a/@href')  # @属性:拿到属性值print(ret3)

技巧

快速定位并复制后一行的xpath

案例

import requests
from lxml import etreeurl = 'xxxxxxxxxx'  # 某网站
resp = requests.get(url)
# print(resp.text)html = etree.HTML(resp.text)divs = html.xpath('/html/body/div[6]/div/div/div[2]/div[5]/div[1]/div')for div in divs:price = div.xpath('./div/div/a[2]/div[2]/div[1]/span[1]/text()')[0].strip('¥')amount = div.xpath('./div/div/a[2]/div[2]/div[1]/span[2]/text()')[0].strip('近半年成交:')name = 'saas'.join(div.xpath('./div/div/a[2]/div[2]/div[2]/p/text()'))company = (div.xpath('./div/div/a[1]/div[1]/p/text()')[1]).strip()location = div.xpath('./div/div/a[1]/div[1]/div/span/text()')[0]print('标题:{0}; 价格:{1}; 销量:{2}, 公司:{3}, 所在地:{4}'.format(name, price, amount, company, location))resp.close()

Python爬虫:8_Xpath解析相关推荐

  1. python爬虫正则表达式实例-python爬虫 正则表达式解析

    这篇文章主要介绍了python爬虫 正则表达式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 - re.I # 忽略大小写 - re.M # 多 ...

  2. 硬核来袭!!!一篇文章教你入门Python爬虫网页解析神器——BeautifulSoup详细讲解

    文章目录 一.BeautifulSoup介绍 二.安装 三.bs4数据解析的原理 四.bs4 常用的方法和属性 1.BeautifulSoup构建 1.1 通过字符串构建 1.2 从文件加载 2.Be ...

  3. python爬虫数据解析总结

    python爬虫数据解析总结 目录 python爬虫数据解析总结 1.概述 2.Xpath解析html数据 2.1.基本语法 1.查询语法 2.2.Xpath解析html数据 1.安装lxml库 2. ...

  4. python爬虫案例-python爬虫详细解析附案例

    什么是爬虫框架 说这个之前,得先说说什么是框架: 是实现业界标准的组件规范:比如众所周知的MVC开发规范 提供规范所要求之基础功能的软件产品:比如Django框架就是MVC的开发框架,但它还提供了其他 ...

  5. Python爬虫笔记——解析json数据(以周杰伦歌单为例)及Headers

    一.Network Network能够记录浏览器的所有请求.我们最常用的是:ALL(查看全部)/XHR(仅查看XHR)/Doc(Document,第0个请求一般在这里),有时候也会看看:Img(仅查看 ...

  6. python爬虫lxml解析爬取诗词名句

    原创:仅用于学习Python爬虫,请勿商业或恶意爬取数据 文件夹和文件都是程序创建,我只爬了这些数据用于测试 仅用了两个for循环,并没有搞的太难(函数),适合新手操练,有大量注释易于理解 from ...

  7. python爬虫五大解析器

    python有五大解析器 一.正则表达式  ,使用第三方库 re(re) 1.匹配规则有 模式 描述 \w 匹配字母.数字及下划线 \W 匹配不是字母.数字及下划线的字符 \s 匹配任意空白字符,等价 ...

  8. Python爬虫-简历解析

    本科生简历分析 实验知识点 实验步骤 实验效果图 实验代码 实验用到的是Python爬虫技术,实现爬取和可视化的思想有: 实验知识点 使用request.get(url)获取网页的HTML. 对返回回 ...

  9. python 爬虫智能化解析

    爬虫是做什么的?是帮助我们来快速获取有效信息的.然而做过爬虫的人都知道,解析是个麻烦事. 比如一篇新闻吧,链接是这个:https://news.ifeng.com/c/7kQcQG2peWU,页面预览 ...

  10. python爬虫智能解析库详解

    文章很长 请耐心阅读 什么是爬虫 爬虫是做什么的?是帮助我们来快速获取有效信息的.然而做过爬虫的人都知道,解析是个麻烦事.比如一篇新闻吧,链接是这个: https://news.ifeng.com/c ...

最新文章

  1. python *args 元组 **kargs 字典
  2. 使用Redis存储Nginx+Tomcat负载均衡集群的Session
  3. Android 获取WebView的内容宽度高度
  4. 漫画:什么是时间复杂度
  5. 8-python自动化-day08-进程、线程、协程篇
  6. 怎么在图片上面加个div层,让它浮于图片上方
  7. 数字的处理 :小数点四舍五入
  8. CV新赛事|CT影像诊断新冠肺炎北京垃圾分类识别~文末有福利
  9. docker容器数据卷基本操作
  10. iphone双卡双待机型_运营商确认苹果将通过软件更新来让iPhone 12支持双卡5G!
  11. 在Ubuntu下实现一个简单的C语言程序
  12. php无重复字符的最长子串,无重复字符的最长字串问题
  13. linux是否32位系统文件夹,技术|如何判断Unix系统的一个库文件是32位还是64位的...
  14. 布朗大学计算机专业怎么样,Offer捷报 | 恭喜Z同学收获布朗大学计算机科学专业Offer!...
  15. C# matlab中标准差计算方法
  16. 增持风行网 百视通在下一盘很大的棋
  17. 河南职称计算机考试多少分通过,2019年河南职称计算机考试报名通知
  18. quot 成为通用计算机器 quot,汉语拼音:从读写工具到文化津梁
  19. python mro算法_Python -- mro算法
  20. linu {,} 使用

热门文章

  1. phpexcel官方中文手册---
  2. 不变的就是变化本身(Vue学习笔记one)
  3. java古典兔子问题c语言,Java递归算法经典实例(经典兔子问题)
  4. 小米电视还原设置的方法步骤
  5. 未来的智能家居产品,主要的销售场景
  6. 苹果定时关机怎么设置_windows怎么设置定时关机
  7. 2021年高压电工考试技巧及高压电工实操考试视频
  8. 不用下载字体解决Mac系统下Python的matplotlib库中文乱码的问题
  9. fabric1.1 node-sdk实现AND多方背书策略
  10. Project 2013 使用大全