CSS选择器

#coding=utf-8

# 选择class=“info”的元素              .  info
# 选择id = "firstname" 的元素              #firstname
# 选择所有元素                             *
# 选择所有<p>元素                          p
# 选择所有div元素和p元素                   div,p
# 选择div元素内的所有p元素                 div p
# 选择带有target属性的所有元素             [target]
# 选择target=“_blank”的所有元素          [target="_blank"]

from scrapy.selector import Selector

with open('.\superHero.xml','r') as fp:
    body = fp.read()

    print '选取所有class的内容:'
    print Selector(text=body).css('class').extract()

    print '选取class下的name元素组:'
    print Selector(text=body).css('class name').extract()

    print '选择所有name 和 sex 元素组: '
    print Selector(text=body).css('name,sex').extract()

    print '选择带有lang 属性的所有元素:'
    print Selector(text=body).css('[lang]').extract()

    print '选择所有lang为en的所有元素:'
    print Selector(text=body).css('[lang=en]').extract()


运行结果

选取所有class的内容:
[u'\n\t\t\tTony Stark \n\t\t\tIron Man \n\t\t\tmale \n\t\t\t1969 \n\t\t\t47 \n\t\t', u'\n\t\t\tPeter BenJamin Parker \n\t\t\tSpider Man \n\t\t\tmale \n\t\t\tunknow \n\t\t\tunknow \n\t\t', u'\n\t\t\tSteven Rogers \n\t\t\tCaption America \n\t\t\tmale \n\t\t\t19200704 \n\t\t\t96 \n\t\t']
选取class下的name元素组:
[u'Tony Stark ', u'Peter BenJamin Parker ', u'Steven Rogers ']
选择所有name 和 sex 元素组: 
[u'Tony Stark ', u'male ', u'Peter BenJamin Parker ', u'male ', u'Steven Rogers ', u'male ']
选择带有lang 属性的所有元素:
[u'Tony Stark ', u'Peter BenJamin Parker ', u'Steven Rogers ']
选择所有lang为en的所有元素:
[u'Tony Stark ', u'Peter BenJamin Parker ']

superHero.xml

<html>
	<body>
	<superhero>
		<class>
			<name lang="en">Tony Stark </name>
			<alias>Iron Man </alias>
			<sex>male </sex>
			<birthday>1969 </birthday>
			<age>47 </age>
		</class>
		<class>
			<name lang="en">Peter BenJamin Parker </name>
			<alias>Spider Man </alias>
			<sex>male </sex>
			<birthday>unknow </birthday>
			<age>unknow </age>
		</class>
		<class>
			<name lang="ch">Steven Rogers </name>
			<alias>Caption America </alias>
			<sex>male </sex>
			<birthday>19200704 </birthday>
			<age>96 </age>
		</class>
		</superhero>
	</body>
</html>
posted @ 2018-11-06 14:30  老耗子  阅读(69)  评论(0编辑  收藏  举报