当前位置: 首页 > news >正文

全国新农村建设中心网站网站代码优化多少钱

全国新农村建设中心网站,网站代码优化多少钱,wordpress 后台登陆地址,岳阳做网站多少钱parsel 这个库可以对 HTML 和 XML 进行解析,并支持使用 XPath 和 CSS Selector 对内容进行提取和修改,同时它还融合了正则表达式提取的功能。 内容目录 from parsel import Selector提取节点提取 class 包含 item-0 的节点 提取文本获取提取到的所有 li…

parsel 这个库可以对 HTML 和 XML 进行解析,并支持使用 XPath 和 CSS Selector 对内容进行提取和修改,同时它还融合了正则表达式提取的功能。

内容目录

  • from parsel import Selector
  • ==提取节点==
    • 提取 class 包含 item-0 的节点
  • ==提取文本==
    • 获取提取到的所有 li 节点的文本内容
    • 提取文本时get 和 getall 的区别
  • ==提取属性==

from parsel import Selector

提取节点

提取 class 包含 item-0 的节点

python3环境下输入:

html = '''
<div><ul><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div>
'''
from parsel import Selector
selector = Selector(text=html)   # 将 HTML 字符串,赋值为 selector 变量
# print(selector)# 提取 class 包含 item-0 的节点
# css方法
items = selector.css('.item-0')
print(len(items), type(items), items)   # 结果是一个可迭代对象 SelectorList
# xpath方法
items2 = selector.xpath('//li[contains(@class, "item-0")]')
print(len(items2), type(items2), items2)

知识点:

  1. 将 HTML 字符串,赋值为 selector 变量:selector = Selector(text=html)。
  2. css方法提取 class 包含 item-0 的节点:selector.css(‘.item-0’)。
  3. xpath方法提取 class 包含 item-0 的节点:selector.xpath(‘//li[contains(@class, “item-0”)]’)。
  4. 两种方法返回的结果都是一个可迭代对象 SelectorList,长度都为3,具体结果看输出。

结果输出为:

3 <class 'parsel.selector.SelectorList'> [<Selector xpath="descendant-or-self::*[@class and contains(concat(' ', normalize-space(@class), ' '), ' item-0 ')]" data='<li class="item-0">first item</li>\n  ...'>, <Selector xpath="descendant-or-self::*[@class and contains(concat(' ', normalize-space(@class), ' '), ' item-0 ')]" data='<li class="item-0 active"><a href="li...'>, <Selector xpath="descendant-or-self::*[@class and contains(concat(' ', normalize-space(@class), ' '), ' item-0 ')]" data='<li class="item-0"><a href="link5.htm...'>]
3 <class 'parsel.selector.SelectorList'> [<Selector xpath='//li[contains(@class, "item-0")]' data='<li class="item-0">first item</li>\n  ...'>, <Selector xpath='//li[contains(@class, "item-0")]' data='<li class="item-0 active"><a href="li...'>, <Selector xpath='//li[contains(@class, "item-0")]' data='<li class="item-0"><a href="link5.htm...'>]

提取文本

获取提取到的所有 li 节点的文本内容

for item in items:text = item.xpath('.//text()').get()  # 仍是一个可迭代对象 SelectorListprint(text)

知识点:

遍历 items , 利用xpah 提取所有 li 节点的文本内容:text = item.xpath(‘.//text()’).get() ,结果如下。

结果输出为:

first item
third item
fifth item

提取文本时get 和 getall 的区别

# 提取 SelectorList 里面对应的结果,可以使用 get 或 getall 方法 
# xpath 方法
result = selector.xpath('//li[contains(@class, "item-0")]//text()').get()
print(result)    
result = selector.xpath('//li[contains(@class, "item-0")]//text()').getall()
print(result)
# css 方法
result = selector.css('.item-0 *::text').get()  # *用来提取第一个子节点
print(result)
result = selector.css('.item-0 *::text').getall()  # *用来提取所有子节点
print(result)

知识点:

get 和 getall 对于xpath和css都通用。
get() :用来提取第一个子节点
getall() :用来提取所有子节点

结果输出为:

first item
['first item', 'third item', 'fifth item']
first item
['first item', 'third item', 'fifth item']

提取属性

# 提取属性########################################
result = selector.css('.item-0.active a::attr(href)').get()
print(result)
result = selector.xpath('//li[contains(@class, "item-0") and contains(@class, "active")]/a/@href').get()
print(result)
result = selector.css('.item-0').re('link.*')  
# re 方法在这里遍历了所有提取到的 Selector 对象,然后根据传入的正则表达式查找出符合规则的节点源码并以列表的形式返回。
print(result)
result = selector.css('.item-0 *::text').re('.*item')  
# 调用 css 方法时已经提取了进一步的结果,比如提取了节点文本值,那么 re 方法就只会针对节点文本值进行提取
print(result)
result = selector.css('.item-0').re_first('<span class="bold">(.*?)</span>')   # 输出的结果就是小括号部分对应的结果
print(result)

结果输出为:

link3.html
link3.html
['link2.html">second item</a></li>', 'link3.html"><span class="bold">third item</span></a></li>', 'link4.html">fourth item</a></li>', 'link5.html">fifth item</a></li>', 'link3.html"><span class="bold">third item</span></a></li>', 'link4.html">fourth item</a></li>', 'link5.html">fifth item</a></li>', 'link5.html">fifth item</a></li>']
['first item', 'third item', 'fifth item']
third item
http://www.yayakq.cn/news/466093/

相关文章:

  • 团购网站 网上 收费 系统企业网站建设如何去规划
  • 搭建一个网站需要哪些技术建网站到底需要多少钱
  • 南庄顺德网站建设房产备案查询系统
  • h5商城网站是什么意思中国企业500强都有哪些企业
  • 网站欧美风格京东网上商城书店官网
  • 成都网站设计报价wordpress怎么画表格
  • 云南域名注册网站建设网站搭建定制
  • 网站的维护及建设网站连通率
  • 东莞门户网站建设报价表保定网站搜索排名
  • 凡科网站设计手机app用什么工具开发
  • 做门户网站难吗h5美食制作网站模板
  • 网站域名绑定破解闵行区网站设计
  • 南通网站快照优化公司嘉兴市做外贸网站
  • 青岛 企业网站建站吉林市做网站公司
  • 网站建设demowordpress栏目去掉
  • 深圳专业建设网站服务dw制作简单网站模板
  • 怎么做万网网站吗wordpress google翻译插件
  • 做p2p网站的公司想做个网站都需要什么
  • 网站平台策划书wordpress用户设置
  • 聊城住房建设局网站贵阳网站建设搜王道下拉
  • 用dw做旅游网站的方法重庆市建设工程造价信息
  • 如何做网站数据分析免费申请qq号注册官网
  • 商城网站备案流程如何做网站关键词霸屏
  • 服务器如何做网站资深的金融行业网站开发
  • 前端优化网站东莞市手机网站建设公司
  • 苏州网站建设哪家更好dw网页制作素材下载
  • html模板 网站网站建设工程师待遇
  • html网站设计作品专门做电视剧截图的网站
  • 企业网站需要的模块服务器维护是什么意思
  • 株洲市建设局网站p2p视频网站建设