pyhton爬虫(9)——使用XPath提取网页信息
2017-07-18 12:11
281 查看
1. XPath基础
1.1 什么是XPath?
XPath 是一门在 XML 文档中查找信息(节点)的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。1.2 节点
节点是XPath提取XML文档信息的最小单位,一共有7种:(1)元素节点(element)
(2)属性节点(attribute)
(3)文本节点(text)
(4)名称命名节点(namespace)
(5)处理命令节点(processing-instruction)
(6)注释节点(comment)
(7)根节点(root)
1.3 节点关系
(1)父节点(parent):每个元素以及属性都有一个父节点。(2)子节点(child):元素节点可以有零个、一个或多个子节点。
(3)同胞节点(sibling): 拥有相同的父的节点。
(4)前辈节点(ancestor):某节点的父节点的父节点。
(5)后代(descendant):某节点的子节点的子节点。
1.4 XPath 基本用法
1.4.1 基本语法:
(1)//(双斜杠):定位根节点,会对全文进行扫描,在文档中选取所有符合条件的内容,以列表的形式返回。(2)/(单斜杠):寻找当前标签路径的下一层路径标签或者对当前路标签内容进行操作 。
(3) /text():获取当前路径下的文本内容 。
(4)/@xxxx:提取当前路径下标签的属性值 。
(5) | 可选符:使用|可选取若干个路径 如//p | //div 即在当前路径下选取所有符合条件的p标签和div标签。
(6). 点:用来选取当前节点 。
(7)..(双点):选取当前节点的父节点 。
(8)“*”(通配符):表示匹配任何元素节点。
(9)“@*”(通配符):表示匹配任何属性值。
(10)“node()”(通配符):表示匹配任何类型的节点。
1.4.2 XPath提取元素示例
# -*- coding: utf-8 -*- """ Created on Tue Jul 18 10:23:19 2017 @author: Administrator """ from lxml import etree text = '''<html> <div class="large" id="content"> <span>A line of text</span><br/> <span><a href="http://google.com">A link</a></span> </div> <div class="short" id="footer"> </div> </html> ''' html = etree.HTML(text) #result1 = etree.tostring(html) #print(result1) #(1)提取class属性值为large的div标签中的id属性值 print("id属性值:",html.xpath('//div[@class="large"]/@id')[0]) #(2)提取第一个span标签中的文本信息 print("第一个span标签中的文本信息:",html.xpath('//span/text()')[0]) #(3)提取第二个span标签中的链接 print("第二个span标签中的链接:",html.xpath('//span/a/@href')[0])
执行结果如下图所示:
相关文章推荐
- Python自动化(八)使用Scrapy shell提取网页信息
- 使用BeautifulSoup提取网页信息并自动存储
- [置顶] [Java爬虫] 使用 Xpath + HtmlUnit 爬取网页基本信息
- 使用URLConnection获取网页信息的基本流程
- 菜鸟练习C#htmlparser----C#正则加htmlDOM进行网页解析腾讯新闻帖子列表相关信息提取
- Python 抓取网页并提取信息(程序详解)
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)
- 微信使用网页授权获取用户基本信息
- python使用xslt提取网页数据的方法
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies .
- 自动向网页Post信息并提取返回的信息
- iOS 中使用JS提取网页数据,自动提交表单等
- 有主题网页的信息提取算法
- Python网页信息采集:使用PhantomJS采集淘宝天猫商品内容
- 使用DETR指令提取电子客票票面信息
- AJAX XML 实例 下面的例子将演示网页如何使用 AJAX 来读取来自 XML 文件的信息:
- 使用.NET提取网页中的文本
- delphi 使用API返回网页信息
- java 使用Jsoup解析URL网页信息
- 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies