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

news/2024/11/6 12:29:31/

本文主要介绍了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初阶、中阶、高阶电子书籍


http://www.ppmy.cn/news/773862.html

相关文章

手机App版本更新(强制更新/选择更新)

1.添加依赖: compile org.xutils:xutils:3.5.0 compile com.google.code.gson:gson:2.8.12.初始化xutilspublic class BaseApplication extends Application {Overridepublic void onCreate() {super.onCreate();x.Ext.init(this);x.Ext.setDebug(BuildConfig.DEBUG…

乐视揭秘Android5.0手机APP安装失败真相

Android5 0正在成为手机行业的新趋势,越来越多的手机厂商开始推出Android5 0系统的新一代手机。 Android5.0正在成为手机行业的新趋势,越来越多的手机厂商开始推出Android5.0系统的新一代手机。乐视更是一口气推出三大旗舰手机,三款手机搭载的…

乐视android版本怎么升级,乐视网android手机客户端升级

3月31日消息,乐视网android手机客户端V2.0版——“乐视影视”正式发布,据乐视网运营副总裁高飞介绍,“V2.0版是早期发布的乐视网android手机客户端V1.5版的升级版本,基于乐视网第一影视剧库的内容,在用户体验方面做了全…

nginx四层转发应用

默认使用yum安装的nginx是没有额外安装的动态模块的,需要自己额外安装 ls /usr/lib64/nginx/modules/ 若是不安装stream模块,直接在nginx的配置文件中调用stream模块,重载配置文件的时候会报错识别不到stream功能 安装stream模块 yum insta…

今日分享:Midjourney巧妙地用参考图/垫图来绘画图

大家都知道AI绘画工具每次生成的效果都是随机的,但是现在很多AI绘图工具都提供了利用参考图/垫图的方式出图,这样就可以让让AI画作生成自己想要的布局、场景、色彩等等。 国内的AI绘图工具一般都好操作,国外主流的Midjourney也可以添加参考图…

文件后缀

★图像文件的后缀名 进入多媒体世界后,大家会看到各种各样精彩的图片,会发现许多种后缀名。的确,由于各个公司在开发图形有关的软件时都自制标准,导致今日在图形方面有太多的格式,以下就是常见的几种格式:…

KVM虚拟化技术的-虚拟机配置文件

一、虚拟机配置文件:/etc/libvirt/qemu/ 每个KVM虚拟主机都有自己的配置文件,都是以虚拟主机名命名;KVM虚拟机的配置文件在/etc/libvirt/qemu/下,以xml文件形式存在; [rootnode3 qemu]# virsh list --all …

常见文件扩展名

*.exe‖可执行文件;直接打开 *.rar‖一种压缩包;用WinRAR打开 *.zip‖一种压缩包;用WinRAR打开,或者WinXP也可以直接打开 *.iso‖虚拟光驱;用WinRAR打开,也可用其他虚拟光驱软件 *.doc‖word文档&#xff1…