parsel库中css选择器的用法(一些小tips

import parsel 
import requests
url='https://www.baidu.com'
response=requests.get(url)
selector=parse.Selector(response.text)
#选择所有元素
selector.css('*')
#选择article元素
html=selector.css('article')
#选择id为container的元素
selector.css('#container')
#选取所有div下所有a元素
selector.css('div a')
#提取标签title列表
title1=selector.css('title').get() #返回字符串(->extract_first())
title2=selector.css('title').getall() #返回列表(->extract())
#提取标签p中的文本
text=selector
#提取div标签所有文本内容
data=selector.css('div.post-content *::text').getall()
#提取标签里的URL: 标签名::attr(属性明)
url=selector.css('div.port-content img::attr(src)').getall()
#选取所有拥有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)')
#选取class为multi-chosen的li的所有a元素
selector.css('li.multi-chosen>a')
#选取所有href属性为https://www.123.com/123456.html 的a元素
selector.css('a[href='https://www.123.com/123456.html]')
#选取所有href属性中包含www.123.com的a元素
a[href*='www.lagou.com']
#选取所有href属性值中以http开头的a元素
a[href^='http']
#选取所有id为肺content-container的div:not(#content-container)

直接子节点:>
后代子节点:' '
属性选择:.class; #id; [option=' ']
组选择:,
属性值的首位匹配:^和$
某类型第n个节点: :nth-of-type(n)
某类型倒数第n个节点: :nth-last-of-type(n)
任意类型的第n个节点: :nth-child(n)

CSS选择器中的">"和空格的作用区别:
">"选择器用于选择父元素的直接子元素。它可以确切地匹配父元素下的直接子元素,而不包括孙子元素及其后代元素。这意味着该选择器将仅选择子元素,而不会选择更深层次的子元素。
空格则用于选择指定标签元素下的后辈元素,即作用于所有子后代元素。
总结来说,">"作用于元素的第一代后代,而空格作用于元素的所有后代。

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值