xpath语法

Posted 木东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xpath语法相关的知识,希望对你有一定的参考价值。

BeautifulSoup 不支持XPath,lxml、Selenium、Scrapy 支持。

在XPath 语法中有四个重要概念。

根节点和非根节点

/div 选择 div 节点,只有当它是文档的根节点时

//div 选择文档中所有的 div 节点(包括非根节点)

通过属性选择节点

//@href 选择带 href 属性的所有节点

//a[@href=\'http://google.com\'] 选择页面中所有指向 Google网站的链接

通过位置选择节点

//a[3] 选择文档中的第三个链接 //table[last()] 选择文档中的最后一个表

//a[position() < 3] 选择文档中的前三个链接

星号(*)匹配任意字符或节点,可以在不同条件下使用

//table/tr/* 选择所有表格行 tr 标签的所有的子节点(这很适合选择 th 和 td 标 签)

//div[@*] 选择带任意属性的所有 div 标签

XPath 语法:https://msdn.microsoft.com/en-us/enus/library/ms256471

# python2.7
from scrapy import Spider from tutorial.items import TutorialItem class TutorialSpider(Spider): name = "a" allowed_domains = ["cnblogs.com"] start_urls = ["https://www.cnblogs.com/"] def parse(self,response): item = TutorialItem() title = response.xpath(\'//*[@id="post_list"]/div[3]/div[2]/h3/a/text()\')[0].extract() print "Title is: " + title item[\'title\'] = title return item

xpath也可以通过下面的方法获取:

 

以上是关于xpath语法的主要内容,如果未能解决你的问题,请参考以下文章

Xpath 选择项目(最后一项除外)包含语法

XPATH 注入的介绍与代码防御

在下面的代码片段中的剩余 ='passthrough' 处的代码中出现语法错误

Python 2.7_利用xpath语法爬取豆瓣图书top250信息_20170129

Scrapy Spider没有返回所有元素

XPATH 注入的介绍与代码防御