利用 lxml 库的XPath()方法在网页中快速查找元素

XPath() 函数是 lxml 库中 Element 对象的方法。在使用 lxml 库解析 HTML 或 XML 文档时,您可以通过创建 Element 对象来表示文档的元素,然后使用 Element 对象的 XPath() 方法来执行 XPath 表达式并选择相应的元素。
具体而言,XPath() 方法是 Element 对象的一个实例方法,用于在该特定元素上执行 XPath 查询。通过调用这个方法并传入合适的 XPath 表达式,您可以定位到符合条件的元素,并对其进行操作或提取信息。

# 使用 XPath 表达式选择具有特定属性值的元素
tree = html.fromstring(html_page)
# 这段代码使用了 Python 的 lxml 库将 HTML 页面解析成元素树,并将树的根节点打印出来。
# print(tree) #输出: <Element html at 0x1e1ebe699a0>
element = tree.xpath("//div[@class='content']")
# Element 对象是 lxml 库中表示 XML/HTML 元素的数据类型。
# 它包含了元素的标签名、属性、文本内容以及子元素等信息,并提供了一系列方法和属性来操作和访问这些信息。在 Python 的 lxml 库中,Element 对象通常用于表示 HTML 或 XML 文档中的各个元素,可以通过它来获取元素的标签名、属性值、文本内容,以及对元素进行遍历、搜索、修改等操作。
# 在程序中,element 变量是一个 Element 对象的列表,表示选中的所有元素。
# 您可以遍历这个列表,对每个元素进行进一步处理或者提取特定的信息。

# print(element) #输出: [<Element div at 0x1e1ec44cc30>]
# 输出结果
print(element[0].text)

XPath() 函数通常用于在网页中查找元素,并且它接受不同类型的参数来定位和选择元素。以下是 XPath() 函数可能接受的参数类型:
字符串类型(String):最常见的参数类型,用于指定要查找的元素或属性的名称、值或文本内容。例如:
//tagname[@attribute='value'] 中的 'value'
//tagname[contains(text(), 'search_text')] 中的 'search_text'
//tagname[starts-with(@attribute, 'prefix')] 中的 'prefix'
# 使用 XPath 表达式选择具有特定属性值的元素
tree = html.fromstring(html_page)
element = tree.xpath("//div[@class='content']")
# 输出结果
print(element[0].text)

节点类型(Node):用于表示要查找的节点或元素。可以通过元素的标签名、属性等来指定节点。例如:
//tagname 中的 tagname
//tagname[@attribute='value'] 中的 @attribute
//tagname[text()='text_value'] 中的 text()='text_value'
# 使用 XPath 表达式选择具有指定文本内容的元素
tree = html.fromstring(html_page)
element = tree.xpath("//a[text()='Click here']")
# 输出结果
print(element[0].get('href'))

数值类型(Number):在一些情况下,XPath 表达式可能需要使用数值类型的参数,如位置索引等。例如:
(//tagname)[1] 中的 1
(//tagname)[position] 中的 position
# 使用 XPath 表达式选择具有指定位置的元素
tree = html.fromstring(html_page)
element = tree.xpath("(//div)[2]")
# 输出结果
print(element[0].text)

布尔类型(Boolean):用于表示真(true)或假(false)的值,通常用于逻辑运算符的判断条件。例如:
//tagname[@attribute='value' and @attribute2='value2'] 中的 and
# 使用 XPath 表达式选择同时满足多个条件的元素
tree = html.fromstring(html_page)
element = tree.xpath("//div[@class='content' and @id='main']")
# 输出结果
print(element[0].text)

当使用 Python 中的 lxml 库时,xpath() 方法用于执行 XPath 表达式以选择 XML 或 HTML 文档中的元素。
XPath 是一种用于定位和选择文档中特定部分的语言,它提供了丰富的功能和灵活性。
下面是一些常见的 XPath 表达式及其对应的功能和示例:
选择所有元素:XPath 表达式: //*
示例:elements = root.xpath('//*')
根据标签名选择元素:XPath 表达式: //tagname
示例:books = root.xpath('//book')
使用谓词选择特定条件下的元素:XPath 表达式: //tagname[@attribute='value']
示例:book = root.xpath("//book[@id='1']")
选择子元素:XPath 表达式: ./childtagname
示例:title = book[0].xpath('./title')[0]
使用位置索引选择元素:XPath 表达式: (//tagname)[position]
示例:first_book = root.xpath('(//book)[1]')
选择特定路径下的元素:XPath 表达式: //pathto/element
示例:chapter_titles = root.xpath('//book/chapters/chapter/title')

XPath 还支持许多其他功能,使您能够更灵活地定位和选择文档中的元素。
下面是一些常见的功能:
使用逻辑运算符:
and:同时满足两个条件 示例: //tagname[@attribute='value' and @attribute2='value2']
or:满足两个条件之一 示例: //tagname[@attribute='value' or @attribute2='value2']
not:不满足条件 示例: //tagname[not(@attribute='value')]
使用函数调用:
text():选择元素的文本内容 示例: //tagname/text()
contains():选择包含指定文本的元素 示例: //tagname[contains(text(), 'search_text')]
starts-with():选择以指定文本开头的元素 示例: //tagname[starts-with(@attribute, 'prefix')]
使用通配符:
*:选择当前节点的所有子元素 示例: //tagname/*
@*:选择当前节点的所有属性 示例: //tagname/@*
使用轴(坐标轴):
ancestor:选择当前节点的所有祖先节点 示例: //tagname/ancestor::ancestor_name
parent:选择当前节点的父节点 示例: //tagname/parent::parent_name
following-sibling:选择当前节点之后的所有同级节点 示例: //tagname/following-sibling::sibling_name

contains():选择包含指定文本的元素
语法://tagname[contains(text(), 'search_text')]
示例://div[contains(text(), 'Hello World')]
说明:这个表达式会选择所有 <tagname> 元素中包含文本 'search_text' 的元素。注意,这里的 text() 是用来选取元素的文本内容。
starts-with():选择以指定文本开头的元素
语法://tagname[starts-with(@attribute, 'prefix')]
示例://a[starts-with(@href, 'https://')]
说明:这个表达式会选择所有 <tagname> 元素中属性 'attribute' 的值以 'prefix' 开头的元素。在示例中,我们选择所有链接元素中 href 属性值以 'https://' 开头的链接。

# 导入必要的库和模块
from lxml import html# 定义要解析的 HTML 页面
html_page = '''<html><head><title>Example Page</title></head><body><div class="content">This is the main content.</div><div class="sidebar">This is the sidebar.</div></body></html>
'''# 使用 XPath 表达式选择具有特定属性值的元素
tree = html.fromstring(html_page)
# 这段代码使用了 Python 的 lxml 库将 HTML 页面解析成元素树,并将树的根节点打印出来。
# print(tree) #输出: <Element html at 0x1e1ebe699a0>
element = tree.xpath("//div[@class='content']")
# Element 对象是 lxml 库中表示 XML/HTML 元素的数据类型。
# 它包含了元素的标签名、属性、文本内容以及子元素等信息,并提供了一系列方法和属性来操作和访问这些信息。
# 在程序中,element 变量是一个 Element 对象的列表,表示选中的所有元素。
# 您可以遍历这个列表,对每个元素进行进一步处理或者提取特定的信息。
# print(element) #输出: [<Element div at 0x1e1ec44cc30>]
# 输出结果
print(element[0].text)print("*"*30)# 导入必要的库和模块
from lxml import html# 定义要解析的 HTML 页面
html_page = '''<html><head><title>Example Page</title></head><body><a href="http://www.example.com">Click here</a></body></html>
'''# 使用 XPath 表达式选择具有指定文本内容的元素
tree = html.fromstring(html_page)
element = tree.xpath("//a[text()='Click here']")# 输出结果
print(element[0].get('href'))print("*"*30)# 导入必要的库和模块
from lxml import html# 定义要解析的 HTML 页面
html_page = '''<html><head><title>Example Page</title></head><body><div class="content">This is the main content.</div><div class="sidebar">This is the sidebar.</div></body></html>
'''# 使用 XPath 表达式选择具有指定位置的元素
tree = html.fromstring(html_page)
element = tree.xpath("(//div)[2]")# 输出结果
print(element[0].text)print("*"*30)# 导入必要的库和模块
from lxml import html# 定义要解析的 HTML 页面
html_page = '''<html><head><title>Example Page</title></head><body><div class="content" id="main">This is the main content.</div><div class="sidebar">This is the sidebar.</div></body></html>
'''# 使用 XPath 表达式选择同时满足多个条件的元素
tree = html.fromstring(html_page)
element = tree.xpath("//div[@class='content' and @id='main']")# 输出结果
print(element[0].text)oooooo='''
lxml 库是一个功能强大且高效的 Python 库,用于处理 XML 和 HTML 数据。它基于 libxml2 和 libxslt 库,提供了简单易用的 API 接口,使开发者能够方便地解析、生成和操作 XML/HTML 文档。
lxml 库主要包含两个模块:lxml.etree 和 lxml.html。其中,lxml.etree 模块用于处理 XML 数据,提供了 ElementTree API 的增强版,支持 XPath、XSLT、解析、序列化等功能;lxml.html 模块则专门用于处理 HTML 数据,提供了类似于 lxml.etree 的功能,同时还包含了一些针对 HTML 的特定方法和功能。
使用 lxml 库,您可以轻松地完成以下任务:
解析 XML/HTML 文档并构建相应的 Element 对象树。
使用 XPath 表达式查询文档中的元素。
修改、删除或添加文档中的元素。
序列化 Element 对象树为字符串或文件。
执行 XSLT 转换等操作。
总的来说,lxml 库是处理 XML 和 HTML 数据的重要工具,提供了丰富的功能和灵活的接口,适合各种数据处理和 web 抓取任务。
----------------------
XPath() 函数是 lxml 库中 Element 对象的方法。在使用 lxml 库解析 HTML 或 XML 文档时,您可以通过创建 Element 对象来表示文档的元素,然后使用 Element 对象的 XPath() 方法来执行 XPath 表达式并选择相应的元素。
具体而言,XPath() 方法是 Element 对象的一个实例方法,用于在该特定元素上执行 XPath 查询。通过调用这个方法并传入合适的 XPath 表达式,您可以定位到符合条件的元素,并对其进行操作或提取信息。
XPath() 函数通常用于在网页中查找元素,并且它接受不同类型的参数来定位和选择元素。
以下是 XPath() 函数可能接受的参数类型:
字符串类型(String):最常见的参数类型,用于指定要查找的元素或属性的名称、值或文本内容。例如:
//tagname[@attribute='value'] 中的 'value'
//tagname[contains(text(), 'search_text')] 中的 'search_text'
//tagname[starts-with(@attribute, 'prefix')] 中的 'prefix'
# 使用 XPath 表达式选择具有特定属性值的元素
tree = html.fromstring(html_page)
element = tree.xpath("//div[@class='content']")
# 输出结果
print(element[0].text)节点类型(Node):用于表示要查找的节点或元素。可以通过元素的标签名、属性等来指定节点。例如:
//tagname 中的 tagname
//tagname[@attribute='value'] 中的 @attribute
//tagname[text()='text_value'] 中的 text()='text_value'
# 使用 XPath 表达式选择具有指定文本内容的元素
tree = html.fromstring(html_page)
element = tree.xpath("//a[text()='Click here']")# 输出结果
print(element[0].get('href'))数值类型(Number):在一些情况下,XPath 表达式可能需要使用数值类型的参数,如位置索引等。例如:
(//tagname)[1] 中的 1
(//tagname)[position] 中的 position
# 使用 XPath 表达式选择具有指定位置的元素
tree = html.fromstring(html_page)
element = tree.xpath("(//div)[2]")
# 输出结果
print(element[0].text)布尔类型(Boolean):用于表示真(true)或假(false)的值,通常用于逻辑运算符的判断条件。例如:
//tagname[@attribute='value' and @attribute2='value2'] 中的 and
# 使用 XPath 表达式选择同时满足多个条件的元素
tree = html.fromstring(html_page)
element = tree.xpath("//div[@class='content' and @id='main']")
# 输出结果
print(element[0].text)
-----------------------
当使用 Python 中的 lxml 库时,xpath() 方法用于执行 XPath 表达式以选择 XML 或 HTML 文档中的元素。
XPath 是一种用于定位和选择文档中特定部分的语言,它提供了丰富的功能和灵活性。
下面是一些常见的 XPath 表达式及其对应的功能和示例:
选择所有元素:XPath 表达式: //*
示例:elements = root.xpath('//*')
根据标签名选择元素:XPath 表达式: //tagname
示例:books = root.xpath('//book')
使用谓词选择特定条件下的元素:XPath 表达式: //tagname[@attribute='value']
示例:book = root.xpath("//book[@id='1']")
选择子元素:XPath 表达式: ./childtagname
示例:title = book[0].xpath('./title')[0]
使用位置索引选择元素:XPath 表达式: (//tagname)[position]
示例:first_book = root.xpath('(//book)[1]')
选择特定路径下的元素:XPath 表达式: //pathto/element
示例:chapter_titles = root.xpath('//book/chapters/chapter/title')
----------------------------
XPath 还支持许多其他功能,使您能够更灵活地定位和选择文档中的元素。下面是一些常见的功能:
使用逻辑运算符:
and:同时满足两个条件 示例: //tagname[@attribute='value' and @attribute2='value2']
or:满足两个条件之一 示例: //tagname[@attribute='value' or @attribute2='value2']
not:不满足条件 示例: //tagname[not(@attribute='value')]
使用函数调用:
text():选择元素的文本内容 示例: //tagname/text()
contains():选择包含指定文本的元素 示例: //tagname[contains(text(), 'search_text')]
starts-with():选择以指定文本开头的元素 示例: //tagname[starts-with(@attribute, 'prefix')]
使用通配符:
*:选择当前节点的所有子元素 示例: //tagname/*
@*:选择当前节点的所有属性 示例: //tagname/@*
使用轴(坐标轴):
ancestor:选择当前节点的所有祖先节点 示例: //tagname/ancestor::ancestor_name
parent:选择当前节点的父节点 示例: //tagname/parent::parent_name
following-sibling:选择当前节点之后的所有同级节点 示例: //tagname/following-sibling::sibling_name
------------------------
contains():选择包含指定文本的元素
语法://tagname[contains(text(), 'search_text')]
示例://div[contains(text(), 'Hello World')]
说明:这个表达式会选择所有 <tagname> 元素中包含文本 'search_text' 的元素。注意,这里的 text() 是用来选取元素的文本内容。
starts-with():选择以指定文本开头的元素
语法://tagname[starts-with(@attribute, 'prefix')]
示例://a[starts-with(@href, 'https://')]
说明:这个表达式会选择所有 <tagname> 元素中属性 'attribute' 的值以 'prefix' 开头的元素。在示例中,我们选择所有链接元素中 href 属性值以 'https://' 开头的链接。
---------------
lxml.etree 模块是 lxml 库中用于处理 XML 数据的核心模块,提供了 ElementTree API 的增强版,并支持 XPath、XSLT、解析、序列化等功能。以下是 lxml.etree 中一些重要的方法:
etree.parse():解析 XML 文件并返回 Element 对象树。
from lxml import etree
# 解析 XML 文件并返回 Element 对象树
tree = etree.parse('example.xml')etree.fromstring():将 XML 字符串转换为 Element 对象。
from lxml import etree
# 将 XML 字符串转换为 Element 对象
xml_str = "<root><a>1</a><b>2</b></root>"
root = etree.fromstring(xml_str)element.xpath():使用 XPath 表达式选择元素。
from lxml import etree
# 使用 XPath 表达式选择元素
tree = etree.parse('example.xml')
elements = tree.xpath('//book[author="John Doe"]')element.get():获取元素的指定属性。
from lxml import etree
# 获取元素的指定属性
tree = etree.parse('example.xml')
element = tree.xpath('//book')[0]
title = element.get('title')element.text:获取或设置元素的文本内容。
from lxml import etree
# 获取或设置元素的文本内容
tree = etree.parse('example.xml')
element = tree.xpath('//book/author')[0]
author = element.text
--------------------------
lxml.html 模块则是 lxml 库中用于解析和处理 HTML 数据的模块,它提供了类似于 lxml.etree 的功能,同时还包含了一些针对 HTML 的特定方法和功能。以下是 lxml.html 中一些重要的方法:
html.fromstring():将 HTML 字符串转换为 Element 对象。
from lxml import html
# 将 HTML 字符串转换为 Element 对象
html_str = '<html><body><h1>Hello, World!</h1></body></html>'
root = html.fromstring(html_str)element.xpath():使用 XPath 表达式选择元素。
from lxml import html
# 使用 XPath 表达式选择元素
html_str = '<html><body><h1>Hello, World!</h1></body></html>'
root = html.fromstring(html_str)
elements = root.xpath('//h1')element.cssselect():使用 CSS 选择器选择元素。
from lxml import html
# 使用 CSS 选择器选择元素
html_str = '<html><body><h1>Hello, World!</h1></body></html>'
root = html.fromstring(html_str)
elements = root.cssselect('h1')element.text_content():获取元素及其子元素的文本内容。
from lxml import html
# 获取元素及其子元素的文本内容
html_str = '<html><body><p>Hello, <strong>World!</strong></p></body></html>'
root = html.fromstring(html_str)
content = root.xpath('//p')[0].text_content()element.make_links_absolute():将相对链接转换为绝对链接。
from lxml import html
# 将相对链接转换为绝对链接
html_str = '<html><body><a href="/about">About</a></body></html>'
root = html.fromstring(html_str)
root.make_links_absolute('https://example.com')
link = root.xpath('//a')[0].get('href')
总的来说,lxml.etree 和 lxml.html 模块提供了丰富的功能和灵活的接口,适合各种 XML/HTML 数据处理任务。
'''

lxml 库是一个功能强大且高效的 Python 库,用于处理 XML 和 HTML 数据,开发者能够方便地解析、生成和操作 XML/HTML 文档。

lxml 库主要包含两个模块:lxml.etree 和 lxml.html。其中,lxml.etree 模块用于处理 XML 数据,提供了 ElementTree API 的增强版,支持 XPath、XSLT、解析、序列化等功能;lxml.html 模块则专门用于处理 HTML 数据,提供了类似于 lxml.etree 的功能,同时还包含了一些针对 HTML 的特定方法和功能。

使用 lxml 库,您可以轻松地完成以下任务:

  • 解析 XML/HTML 文档并构建相应的 Element 对象树。
  • 使用 XPath 表达式查询文档中的元素。
  • 修改、删除或添加文档中的元素。
  • 序列化 Element 对象树为字符串或文件。
  • 执行 XSLT 转换等操作。

总的来说,lxml 库是处理 XML 和 HTML 数据的重要工具,提供了丰富的功能和灵活的接口,适合各种数据处理和 web 抓取任务。

--

lxml.etree 模块是 lxml 库中用于处理 XML 数据的核心模块,提供了 ElementTree API 的增强版,并支持 XPath、XSLT、解析、序列化等功能。以下是 lxml.etree 中一些重要的方法:
etree.parse():解析 XML 文件并返回 Element 对象树。
from lxml import etree
# 解析 XML 文件并返回 Element 对象树
tree = etree.parse('example.xml')

etree.fromstring():将 XML 字符串转换为 Element 对象。
from lxml import etree
# 将 XML 字符串转换为 Element 对象
xml_str = "<root><a>1</a><b>2</b></root>"
root = etree.fromstring(xml_str)

element.xpath():使用 XPath 表达式选择元素。
from lxml import etree
# 使用 XPath 表达式选择元素
tree = etree.parse('example.xml')
elements = tree.xpath('//book[author="John Doe"]')

element.get():获取元素的指定属性。
from lxml import etree
# 获取元素的指定属性
tree = etree.parse('example.xml')
element = tree.xpath('//book')[0]
title = element.get('title')

element.text:获取或设置元素的文本内容。
from lxml import etree
# 获取或设置元素的文本内容
tree = etree.parse('example.xml')
element = tree.xpath('//book/author')[0]
author = element.text

lxml.html 模块则是 lxml 库中用于解析和处理 HTML 数据的模块,它提供了类似于 lxml.etree 的功能,同时还包含了一些针对 HTML 的特定方法和功能。以下是 lxml.html 中一些重要的方法:
html.fromstring():将 HTML 字符串转换为 Element 对象。
element.xpath():使用 XPath 表达式选择元素。
element.cssselect():使用 CSS 选择器选择元素。
element.text_content():获取元素及其子元素的文本内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯STM32G431RBT6实现按键的单击、双击、长按的识别

阅读引言&#xff1a; 是这样&#xff0c; 我也参加了这个第十五届的蓝桥杯&#xff0c;查看竞赛提纲的时候发现有按键的双击识别&#xff0c; 接着我就自己实现了一个按键双击的识别&#xff0c;但是识别效果不是特别理想&#xff0c;偶尔会出现识别不准确的情况&#xff0c;接…

java反射高级用列(脱敏+aop)

ClassUtils 、FieldUtils、MethodUtils、ReflectionUtils高级 List<String> list = new ArrayList<>(); Class<?> userClass = ClassUtils.getUserClass(list.getClass()); System.out.println(Collection.class.isAssignableFrom(userClass)); Class<?…

云原生之容器编排实践-ruoyi-cloud项目部署到K8S:MySQL8

背景 前面搭建好了 Kubernetes 集群与私有镜像仓库&#xff0c;终于要进入服务编排的实践环节了。本系列拿 ruoyi-cloud 项目进行练手&#xff0c;按照 MySQL &#xff0c; Nacos &#xff0c; Redis &#xff0c; Nginx &#xff0c; Gateway &#xff0c; Auth &#xff0c;…

Delay/disruption tolerant networking (DTN) 与deep-space communications中的数据存储问题

文章目录 来源abstractintroBP运行及Bundle节点概述具体细节custody transfer 来源 https://www.pismin.com/10.1109/twc.2015.2394397 背景&#xff1a;考虑到深空通信的高时延和易发生中断的特性&#xff0c;为了保证通信的可靠性&#xff0c;DTN采用了捆绑协议 (BP) &…

windows安装fay数字人

创建虚拟环境 conda create -p D:\CondaEnvs\paystu python3.9下载所需资料 源代码 数字形象 将源代码和虚拟象形解压 再源代码文件夹下激活虚拟环境 conda activate D:\CondaEnvs\paystu安装依赖包 注意 会安装pytorch # conda install --yes --file requirements.txt pi…

jupyter notebook闪退解决,安美解决

jupyter notebook闪退 解决方法 打开这个目录 删除含有“~”开头的文件 解决

第十一届蓝桥杯省赛第一场C++ A/B组《解码》(c++)

1.题目说明 小明有一串很长的英文字母&#xff0c;可能包含大写和小写。 在这串字母中&#xff0c;有很多连续的是重复的。 小明想了一个办法将这串字母表达得更短&#xff1a;将连续的几个相同字母写成字母 出现次数的形式。 例如&#xff0c;连续的 5 个 a&#xff0c;即…

golang 装饰器模式详解

前言 我一直以来对golang的装饰器模式情有独衷&#xff0c;不是因为它酷&#xff0c;而是它带给我了太多的好处。首先我不想说太多的概念&#xff0c;熟记这些概念对我的编程来说一点用处没有。我只知道它给我带来了好处&#xff0c;下面谈谈我的理解。 这种模式可以很轻松地…

centos升级g++.v6.1.0版本

1.下载源码包 wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.gz tar -zxvf gcc-6.1.0.tar.gz cd gcc-6.1.0 2.打开 download_prerequisites 脚本 vim contrib/download_prerequisites 可以看到该文件就是执行一些下载指令&#xff0c;需要下载几个包&#xff0c…

顺序表的列题(力扣)和旋转数组

文章目录 一.删除有序数组中的重复项&#xff08;取自力扣&#xff09; 二.合并两个有序数组&#xff08;取自力扣&#xff09; 三.旋转数组&#xff08;多解法&#xff09; 前言 见面我们说到了顺序表今天来分享几个有关于顺序表的题目 一.删除有序数组中的重复项&#xff…

数据结构2月21日

双向链表: func函数&#xff1a; #include <stdio.h> #include <stdlib.h> …

【Flink精讲】Flink性能调优:内存调优

内存调优 内存模型 JVM 特定内存 JVM 本身使用的内存&#xff0c;包含 JVM 的 metaspace 和 over-head 1&#xff09; JVM metaspace&#xff1a; JVM 元空间 taskmanager.memory.jvm-metaspace.size&#xff0c;默认 256mb 2&#xff09; JVM over-head 执行开销&#xff1…

【web】云导航项目部署及环境搭建(复杂)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、项目介绍1.1项目环境架构LNMP1.2项目代码说明 二、项目环境搭建2.1 Nginx安装2.2 php安装2.3 nginx配置和php配置2.3.1 修改nginx文件2.3.2 修改vim /etc/p…

LeetCode--134

134. 加油站 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 …

Camera metadata设计与应用

前言 Android的Camera Metadata是一种数据结构&#xff0c;用于表示图像特征的参数&#xff0c;例如常见的曝光、AE、AWB、flash等参数。在新的Camera API2 / HAL3架构中&#xff0c;这种结构被用来在app-hal之间IPC传输&#xff0c;取代了原先的SetParameter()/GetParameter(…

【蓝桥杯单片机入门记录】动态数码管

目录 一、数码管动态显示概述 二、动态数码管原理图 &#xff08;1&#xff09;原理图 &#xff08;2&#xff09;动态数码管如何与芯片相连 &#xff08;3&#xff09;“此器件” ——>锁存器74HC573 三、动态数码管显示例程 &#xff08;1&#xff09;例程1&#xf…

独立站谷歌SEO外包与自建SEO团队:哪个更适合您的业务?

随着数字营销的崛起&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已成为企业提升在线可见度、吸引潜在客户的关键手段。面对独立站谷歌SEO外包服务和自建SEO团队两种选择&#xff0c;企业往往会感到困惑。本文将深入探讨这两种方式的优势与局限&#xff0c;帮助您做出明…

CentOS 7.9上编译wireshark 3.6

工作环境是Centos 7.9&#xff0c;原本是通过flathub安装的wireshark&#xff0c;但是在gnome的application installer上升级到wireshark 4.2.3之后就运行不起来了&#xff0c;flatpak run org.wireshark.Wireshark启动提示缺少qt6&#xff0c;查了一下wireshark新版是依赖qt6的…

<HarmonyOS第一课>运行Hello World

本课程是基于HarmonyOS 3.1/4.0版本的新技术和特性所推出的系列化课程&#xff0c;每个课程单元里面都包含视频、Codelab、文章和习题&#xff0c;帮助您快速掌握HarmonyOS的应用开发&#xff1b; 通过本章节的学习&#xff0c;您可以安装DevEco Studio开发工具&#xff0c;运行…

docker-集成测试搭建

dockerd守护进程 Dockerd&#xff08;Docker Daemon&#xff09;是 Docker 引擎的守护进程&#xff0c;是运行在后台的一个持续运行的进程&#xff0c;负责管理 Docker 容器、镜像、网络和存储等核心功能。它是 Docker 容器的守护进程&#xff0c;负责接收 Docker API 请求并管…