python爬虫parsel-css选择器的具体用法

本文主要介绍了python爬虫parsel-css选择器的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

parsel 比 lxml 功能强大,它内部不光集成有xpath语法,也集成了css和re语法,相比而言,css与re通用性更强,它俩的性能完全不输xpath,特别是re,速度更快,难度也高!

引入

1

2

import parsel 

import requests

语法使用

1

2

3

url = 'http://www.baidu.com'

response = requests.get(url)

selector = parsel.Selector(response.text)

选择所有元素

1

selector.css('*')

1、选择article元素

1

2

html = selector.css('article')

# get(), getall() , extract_first(), extract() 都可以

2、选择id为container的元素

1

selector.css('#container')

3、选择所有class包含container的元素

1

selector.css('.container')

4、选取所有div下所有a元素

1

selector.css('div a')

5、提取标签title列表

1

2

title1 = selector.css('title').extract()

title2 = selector.css('title').extract_first()

6、提取标签p里的文本内容

1

text = selector.css('p::text').extract()

7、提取标签div里的所有文本内容

1

data = selector.css('div.post-content *::text').extract()

8、提取标签里的URL:标签名::attr(属性名)

1

url = selector.css('div.post-content img::attr(src)').extract()

9、选取所有拥有title属性的a元素

1

a = selector.css('a[title]').getall()

拓展语法

选取ul后面的第一个p元素

1

selector.css('ul + p')

选取与ul相邻的所有p元素

1

selector.css('ul ~ p')

选取下面第二个标签,如果是a的话则选取,不是则不取

1

selector.css('a:nth-child(2)')

选取第偶数个a元素

1

selector.css('a:nth-child(2n)')

选取第奇数个a元素

1

selector.css('a:nth-child(2n+1)')

选取class为multi-chosen的li的所有a元素

1

selector.css('li.multi-chosen > a')

选取所有href属性为www.baidu.com的a元素

1

selector.css('a[href=”www.baidu.com”]')

选取所有href属性值中包含www.baidu.com的a元素

1

a[href*=”www.baidu.com”]

选取所有href属性值中以http开头的a元素

1

a[href^=”http”]

选取所有id为非content-container 的div

1

div:not(#content-container)

到此这篇关于python爬虫parsel-css选择器的具体用法的文章就介绍到这了。

点击拿去​​​​​​​
50G+学习视频教程
100+Python初阶、中阶、高阶电子书籍

你可能感兴趣的:(python,python,爬虫,css)