css選擇器用法
導入庫
import parsel
import requests
語法使用
url = 'http://www.baidu.com'
response = requests.get(url)
selector = parsel.Selector(response.text)
選擇所有元素
selector.css('*')
1、選擇article元素
html = selector.css('article')
# get(), getall() , extract_first(), extract() 都可以
2、選擇id為container的元素
selector.css('#container')
3、選擇所有class包含container的元素
selector.css('.container')
4、選取所有div下所有a元素
selector.css('div a')
5、提取標簽title列表
title1 = selector.css('title').extract()
title2 = selector.css('title').extract_first()
6、提取標簽p里的文本內容
text = selector.css('p::text').extract()
7、提取標簽div里的所有文本內容
data = selector.css('div.post-content *::text').extract()
8、提取標簽里的URL:標簽名::attr(屬性名)
url = selector.css('div.post-content img::attr(src)').extract()
9、選取所有擁有title屬性的a元素
a = selector.css('a[title]').getall()
拓展語法
選取ul后面的第一個p元素
selector.css('ul + p')
選取與ul相鄰的所有p元素
selector.css('ul ~ p')
選取下面第二個標簽,如果是a的話則選取,不是則不取
selector.css('a:nth-child(2)')
選取第偶數個a元素
selector.css('a:nth-child(2n)')
選取第奇數個a元素
selector.css('a:nth-child(2n+1)')
選取class為multi-chosen的li的所有a元素
selector.css('li.multi-chosen > a')
選取所有href屬性為https://www.lagou.com/jobs/3537439.html的a元素
selector.css('a[href=”https://www.lagou.com/jobs/3537439.html”]')
選取所有href屬性值中包含www.lagou.com的a元素
a[href*=”www.lagou.com”]
選取所有href屬性值中以http開頭的a元素
a[href^=”http”]
選取所有id為非content-container 的div
div:not(#content-container)