您当前的位置:首页 > 文章 > python爬虫parsel-css选择器的具体用法

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

作者:就四个字,熟能生巧。 时间:2023-06-29 阅读数:335 人阅读

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

引入

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属性为www.baidu.com的a元素

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

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

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

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

a[href^=”http”] 

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

div:not(#content-container)

到此这篇关于python爬虫parsel-css选择器的具体用法的文章就介绍到这了,更多相关python parsel-css选择器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

本站大部分文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了您的权益请来信告知我们删除。邮箱:1451803763@qq.com