Python爬虫框架 scrapy之xpath选择器 css选择器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guohan_solft/article/details/85013160

一 、xpath

1、节点选择

/:从根节点选取

//:从匹配的当前节点选择文档中的节点,而不考虑它们的位置

.:选择当前节点

…:选择当前节点的父节点

@:选取属性

response.xpath('/html/head/title') --选择HTML文档head元素下的title标签
response.xpath('/html/head/title/text()')--选择title元素下的文本内容
response.xpath('//title')--选择所有title元素
response.xpath('//span[@class="text"]/text()').extract()--选择所有包含class="text"的span标签元素
response.xpath('//span[contains(@class,"text")]/text()').extract()  --等价与上一个选择器
response.xpath('//div[@class="visa_table_info"][@data-key="1"]') --同时选择多个属性
#使用`//text()`提取包含所有子元素的文本
response.xpath('//div[@class="tags"]//text()').extract()
#使用`string(.)`提取包含所有子元素的文本
data=response.xpath('//div[@class="tags"]')
data.xpath("string(.)").extract()
#提取属性值
data.xpath('//a/@href')

二、 css

css选择

1、定位元素后,再选择元素的文本内容

response.css('title::text')--选择title元素下的文本内容
#选择类为tags标签内的文本
response.css('.tags::text').extract()

2、定位元素后,再选择该元下面的元素

//通过 名为 video_part_lists 的Class 中下面的 li 标签
liList = response.css('.video_part_lists li') 

3、定位元素后再选择该元素内的属性值

 li.css('a::attr(href)').extract()

4、css带空格,将空格替换成.即可
<ul class="date-ul fn-left"></ul>

response.css(".date-ul.fn-left")

5、以空格开头的,同样忽略掉空格

<a href="/spec/32582/ge4/?summarykey=520662&amp;g#pvareaid=2112104" class=" dust">后排空间较小(4)</a>
response.css(".dust ::text").extract_first()

三、xpath函数操作

1、取文本:text()

response.xpath("//dl/dt/text()")

2、取包涵所有子元素的文本:string(.)

response.xpath("//dl/dt/string(.)")

3、取属性:@attri

response.xpath("//dl/a/@href")

4、取当前元素的元素名称:name()

response.xpath("//dl/*/name()")

5、取当前元素的子元素:*

response.xpath("//dl/*")

猜你喜欢

转载自blog.csdn.net/guohan_solft/article/details/85013160