Python内使用parsel之css选择器

parsel

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

css与xpath专门处理标记语言格式内容,如:XML或HTML等,但不能直接处理response,必须通过parsel 或 lxml 内的特别方法把字符形式的response转换成html 形式的编码。

css语法

#发送清求,获得响应
response = httpx.get(url,headers).text
#把响应体转成html 格式.
html = parsel.Selector(response)
#定位内容,获取所有div标鉴内容
contend = html.css(‘div’).getall()

当定位到内容时,获取内容有两个方法。

a,get()
get()方法获取第一个符合的内容,当符合内容有多个时,只返回第一个,并且以字符串形式返回标签内容。
比如,要获取第一个< p >标签
p = html.css(‘p’).get()
返回第一个< P >标签包含所有内容,包括< P > < /P >和它俩之间所有内容。

b,getall()
getall()方法返回所有的符合内容,以列表形式返回所有标签内容。
例如,要获取所有< a >标签
a = html.css(‘a’).getall()
返回列表,包含所有< a >标签以及< /a >标签内所有内容。

解析标签内容

a,::text
::text 获取标签内容的文本。比如,获取第一个< P >标签的文本内容。
p = html.css(‘p::text’).get()
只返回< P >标签的文本内容。

b,::attr()
::attr()获取标签属性内容。
比如,获取第一个< a >标签的’href’内容.
href = html.css('a::attr(‘href’)).get()
只返回< a >标签内’href’连接内容。

扫描二维码关注公众号,回复: 16510754 查看本文章

css选择器
parsel的出现,实现了在python中使用css选择器的可能,这包括标签选择器,类选择器,id选择器,复合选择器,伪选择器等等,具体css选择器用法,请参考其他的相关内容,我们下面只简聊在python中的用法。

a,标签选择器
div = html.css(‘div’).getall()
返回所有< div >标签。

b,类选择器(用 . 表示)
div = html.css(‘div.contend’).get()
返回class类属性为contend的div标签。

c,id选择器(用#表示)
p = html.css(‘p#contend::text’).get()
返回id为contend的< p >的文本内容。

其它选择器用法请参考css的具体用法

猜你喜欢

转载自blog.csdn.net/weixin_64974855/article/details/132669834