1、xpath使用路径表达式在xml和html中进行导航
2、xpath包含标准函数库
3、xpath是一个w3c的标准
xpath节点关系
1、父节点
2、子节点
3、同袍节点
4、先辈节点
5、后代节点
xpath语法
article 选取所有article元素的所有子节点
/article 选取根元素article
article/a 选取所有属于article的子元素的a元素
//div 选取所有div子元素(不论出现文档任何地方)
article//div 选取所有属于article元素的后代的div元素,不管它出现在article之下的任何位置
//@class 选取所有名为class的属性
例子:
/article/div[1] 选取属于article子元素的第一个div元素
/article/div[last()] 选取属于article子元素的最后一个div元素
/article/div[last()-1] 选取属于article子元素的倒数第二个div元素
//div[@lang] 选取所有拥有lang属性的div元素
//div[@lang='eng'] 选取所有lang属性为eng的div元素
xpath语法
/div/* 选取属于div元素的所有子节点
//* 选取所有子元素
//div[@*] 选取所有带属性的title元素
//div/a|//div/p 选取所有div元素的a和b元素
//span|//ul 选取文档中的span和ul元素
article/div/p|//span 选取所有属于article元素的div元素的p元素,以及文档中所有的span元素
例子:
class JobboleSpider(scrapy.Spider): name = 'jobbole' allowed_domains = ['blog.jobbole.com'] start_urls = ['http://blog.jobbole.com/110287/'] def parse(self, response): re_sector = response.xpath('/html/body/div[3]/div[3]/div[1]/div[1]/h1') #空 # re_sector = response.xpath('//*[@id="post-110287"]/div[1]/h1/text()') #有数据 # re_sector = response.xpath('//div[@class="entry-header"]/h1/text()') #有数据 pass
进入article_spider虚拟环境,进入ArticleSpider文件夹
命令:scrapy shell http://blog.jobbole.com/110287/
对该网站进行调试