Python爬虫:一文搞懂Parsel中的css选择器

万般的努力只为出人头地,低头弯腰只为爬的更高。

终有一日:会当凌绝顶,一览众山小。

低级的欲望放纵即可获得,高级的欲望克制才能达到。

一本男儿行四方,何惧世俗历沧桑。

莫愁前路无知己,天下谁人不识君。

无人扶我青云志,我自踏雪至山巅。

若是命中无此运,亦可孤身登昆仑。


css解析数据的模板


import parsel
import requests

response = requests.get(url=url,headers=headers)
# 实例化selector对象,注意parsel后面的Selector首字母大写
selector = parsel.Selector(response.text)
content = selector.css('css语法')


css格式总结


. 代表class

# 代表id

::text 表示输出文本(即尖括号里面的内容)

nth-child(page) 表示匹配第page项


举例说明


  • div 返回的是全部的div标签
  • div.content 返回的是class="content"的整个div标签
  • div.content #su  返回的是class='content'的整个div标签下id='su'的标签
  • div.content li 返回的是class='content'的整个div标签下的li标签
  • div.content li:nth-child(1) 返回的是class='content'的整个div标签下的li标签中的第一个li标签
  • div.content li:nth-child(1)::text  返回的是class='content'的整个div标签下的li标签中的第一个li标签中的文本数据
  • div.content li:nth-child(1)::attr(href) 返回的是class='content'的整个div标签下的li标签中的第一个li标签,其中href是所对应的属性值
  • selector.css('css样式').get()  获取第一个匹配的
  • selector.css('css样式').getall()  获取多个匹配的

 Demo展示


在开发者工具中论证,定位要爬取的数据,在element中ctrl+f查找

  • 你比如说:爬取壁纸的名称(游戏壁纸)

'''
Author: Jack
Time: 2024/11/12 下午8:24
'''
import requests
import parsel

url = "https://desk.3gbizhi.com/"
headers = {
    "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
}
response = requests.get(url, headers=headers)
selector = parsel.Selector(response.text)
name = selector.css('.cl li:nth-child(3) a span.catnametit::text').get()
print(name)

学废了的童鞋可以动手尝试一下,怎么获取别的名字,甚至是别的元素都可以。旨在学废!!!

注意:若是出现乱码,则可以添加一下代码

# 自动识别乱码,并纠正
response.encoding = response.apparent_encoding

注意:编写css时,要像剥洋葱一样,一层一层拨开你的心,不能跳的太多,否则会出错!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值