Python爬蟲框架 scrapy之xpath選擇器 css選擇器
阿新 • • 發佈:2018-12-17
文章目錄
一 、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/*")