版权声明:本文为博主原创文章,未经博主允许不得转载。 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&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/*")