python pyquery倒数第二个节点之前的节点_xpath , beautifulsoup4 , pyquery 解析器

本文介绍了Python中用于解析HTML的三种工具:XPath、BeautifulSoup4和PyQuery。详细讲解了XPath的基本概念和常用语法,如选取节点、属性和文本内容。同时对比了BeautifulSoup4的find_all方法以及CSS选择器的使用。最后提到了PyQuery,它是类似jQuery的Python库,支持多种操作HTML的方式。通过这些解析器,开发者能够高效地从HTML中提取所需信息。
Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

xpath

动态加载:使用json串转换

静态页面:使用正则,xpath.......

结构化数据:先有结构,在有数据 json path

非结构化数据:先有数据,再有结构 正则,xpath,beautifusoup4

什么是xpath:

是一门在 XML 文档中提取信息数据的语言,可以用来在xml文档中对元素(标签)的属性进行遍历

我们在使用xpath之前首先需要将html文档转换为xml文档

什么是xml:是传输数据而并非显示数据

xpath 语法的目的,找到节点,提取信息

xpath 语法

使用xpath 语法提取数据

xml:是一个可扩展的标记语言,语法和 html 相像,里面的节点可以自己定义,被设计的目的用来进行数据的传输和保存

xpath的使用:

安装lxml pip3 install lxml

1.from lxml import etree

html_lement = etree.HTML("response.text")

html_lement = etree.HTML("html内容")

常用的语法:

notename:节点:查找出html中标签名为notname的节点(包括节点本身)

/ 表示从根节点的地方开始获取,(相对性的)

// 表示从任意位置匹配出你想要的节点

. 表示选取当前节点

.. 表示选取当前节点的父节点

@ 属性名:表示选择属性  /a/@href 语法规则

text() 表示取标签文本内容   例如:获取a节点的中文 a/text()

notename[@class=" "] 根据class获取节点

notename[@id=" "] 根据id 获取节点

notename[1]:表示标签名为第一个的节点 (从1开始,而不是从0开始)

notename[last()]:表示取最后一个

notename[last()-1]:表示取倒数第二个

notename[post() > 3] 表示选取前三个

beautifulsoup4

bs4:bs4解析器,设计的目的同样是在html中寻找节点,但是效率比xpath要低

使用bs4

安装 pip3 install beautifulsoup4

from bs4 import BeautifulSoup

html_soup = BeautifulSoup('html文档','解析器')

文档解析器常用的两种

lxml:索命使用的是lxml.html(解析器)

html.parser:python自带的html解析器

#beautifulsoup 和 tag 类型的对象可以使用find_all 属性

find_all:查找符合条件的全部节点

name=None,:节点名称:可以是一个字符串,可以是一个列表,可以是一个正则表达式,(标签的名称)

attrs={}, recursive=True,:节点的属性 是一个字典(标签的属性)

text=None,:字符串,列表,正则表达式,(查找出所有跟text文本一致的内容)

html_soup.find()

css 选择器: . 表示 类 选择器

# 表示 id 选择器

获取文本内容

.string 表示获取标签的文本内容

.get_text() 表示获取标签的文本内容(使用的多)

attrs() 获取标签的所有属性值

attrs['属性名'] 获取标签的某个属性的属性值

pyquery

pyquery:相当于jQuery的python版本实现,它同样可以提取HTML页面中节点,

pyquery 的使用:

安装 pip3 install pyjquery

from pyquery import PyQuery as pyq

”“”

第一步构建一个PyQuery对象

#传入字符串

html_pq = pq('html文本')

#传入lxml

html_pq = pq(etree.fromstring('html文本'))

#可以直接传入一个url

html_pq = pq(url='url地址')

“”“

传入文件

html_pq = pq(filename='文件名称')

pyquert 常用的语法:

.html():获取某个html代码块

.text():获取标签的文本内容

.(selector): 根据css选择器获取目标节点

.eq(index):根据索引获取指定标签(节点)

.find():查找子节点

.filter():根据class,id过滤节点

.attr('属性名'):获取节点的属性值

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值