博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 lxml 中的 xpath 高效提取文本与标签属性值
阅读量:6636 次
发布时间:2019-06-25

本文共 1730 字,大约阅读时间需要 5 分钟。

 以下代码在 python 3.5 + jupyter notebook 中运行测试无误!

 

# 我们爬取网页的目的,无非是先定位到DOM树的节点,然后取其文本或属性值myPage = '''        TITLE                

我的博客

我的文章
PIC1 is beautiful!
PIC2 is beautiful!

更多美图

去往百度
去往网易
去往搜狐

Hello,\nworld!

-- by Adam

放在尾部的其他一些说明
''' html = etree.fromstring(myPage)# 一、定位divs1 = html.xpath('//div')divs2 = html.xpath('//div[@id]')divs3 = html.xpath('//div[@class="foot"]')divs4 = html.xpath('//div[@*]')divs5 = html.xpath('//div[1]')divs6 = html.xpath('//div[last()-1]')divs7 = html.xpath('//div[position()<3]')divs8 = html.xpath('//div|//h1')divs9 = html.xpath('//div[not(@*)]')# 二、取文本 text() 区别 html.xpath('string()')text1 = html.xpath('//div/text()')text2 = html.xpath('//div[@id]/text()')text3 = html.xpath('//div[@class="foot"]/text()')text4 = html.xpath('//div[@*]/text()')text5 = html.xpath('//div[1]/text()')text6 = html.xpath('//div[last()-1]/text()')text7 = html.xpath('//div[position()<3]/text()')text8 = html.xpath('//div/text()|//h1/text()')# 三、取属性 @value1 = html.xpath('//a/@href')value2 = html.xpath('//img/@src')value3 = html.xpath('//div[2]/span/@id')# 四、定位(进阶)# 1.文档(DOM)元素(Element)的find,findall方法divs = html.xpath('//div[position()<3]')for div in divs: ass = div.findall('a') # 这里只能找到:div->a, 找不到:div->p->a for a in ass: if a is not None: #print(dir(a)) print(a.text, a.attrib.get('href')) #文档(DOM)元素(Element)的属性:text, attrib# 2.与1等价a_href = html.xpath('//div[position()<3]/a/@href')print(a_href)# 3.注意与1、2的区别a_href = html.xpath('//div[position()<3]//a/@href')print(a_href)

 

转载地址:http://tobvo.baihongyu.com/

你可能感兴趣的文章
谈谈CAS的常规用法
查看>>
Struts1 Action 属性详解
查看>>
mantis更改备忘
查看>>
Html5时钟的实现
查看>>
Android应用如何实现换肤功能
查看>>
Linux面试题集锦,测测你的水平(答案)二
查看>>
读懂正则表达式就这么简单
查看>>
python模块介绍-gearman:程序排程 概述
查看>>
利用autobench测试web服务器极限并发数
查看>>
Zabbix监控系统部署
查看>>
centos用光盘做本地源
查看>>
linux 的文件归档和压缩
查看>>
内网通过映射后的公网IP访问内网服务测试--ASA8.0 hairpin NAT测试
查看>>
2018年的AI/ML惊喜及预测19年的走势(二)
查看>>
jboss 基本配置(端口、编码、访问、log)
查看>>
1.VMware vsphere 5.0新体验-介绍
查看>>
java重载与重写
查看>>
Python BeautifulSoup 爬取笔趣阁所有的小说
查看>>
Linux网络配置命令
查看>>
我的友情链接
查看>>