python爬虫8:bs4库

python爬虫8:bs4库

前言

​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。

申明

​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产生不好影响。

目录结构

文章目录

    • python爬虫8:bs4库
      • 1. 概述与安装
      • 2. 解析器
      • 3. 方法讲解
        • 3.1 第一个例子
        • 3.2 初始化
        • 3.3 通过标签名来获取元素
        • 3.4 通过属性来获取元素
        • 3.5 通过find方法来获取元素(常用)
        • 3.6 通过css语法获取元素
        • 3.7 获取信息
      • 4. 总结

1. 概述与安装

​ bs4是BeautifulSoup4的简称,它是一个可以从HTML中提取数据的Python第三方库,也是我们将要讲解的第二个解析库,除此之外,还有常用的pyquery(主要通过css语法来获取,我们不讲解,因为需要学习过前端的css)、re(正则表达式库,基础库,但是用于爬虫里比较麻烦,因此也不讲解)

​ 其安装非常简单:

pip install Beautifulsoup4

2. 解析器

​ 对于bs4这个库来说,我们主要使用的是BeautifulSoup对象,使用方法如下:

# 导包
from bs4 import BeautifulSoup
# 创建对象
soup = BeautifulSoup()
print(type(soup))# 结果为:
# <class 'bs4.BeautifulSoup'>

​ 而BeautifulSoup在解析网页的时候依赖于其他的解析器,如我们之前讲解过的lxml等等。下面给出常见的四种解析器:Python标准库、lxml解析器、xml解析器、html5lib解析器。上面四种解析器各有优点也有缺点,其中最常用的就是lxml,因为其解析速度和容错性都比较好。

​ 下面给出四种解析器的优缺点:

解析器优点缺点
Python标准库python内置标准库,执行速度适中,文档容错强python2.x与python3.2.2之前的版本容错能力差
lxml速度快、容错能力强需要安装C语言库
xml速度快,唯一支持XML文档的解析器需要安装C语言库
html5lib最好的容错性速度慢

什么是容错性?

​ 这里解释一下,什么是容错性。我们有时候传给BeautifulSoup的网页源代码并不完整,或者说格式不标准,其中常见的如:table标签的写法,table标签现在一般都采取的简写的方式,而不是标准的写法。这时,不同的解析器就有不同的容错性,或者说对于修正性。

3. 方法讲解

3.1 第一个例子

​ 下面给出bs4的一个小小例子,让大家有一个印象:

from bs4 import BeautifulSouptext = '''
<div class="classify clearfix"><a href="/4kfengjing/" title="4K风景图片">4K风景</a><a href="/4kmeinv/" title="4K美女图片">4K美女</a><a href="/4kyouxi/" title="4K游戏图片">4K游戏</a><a href="/4kdongman/" class="curr" title="4K动漫图片">4K动漫</a><a href="/4kyingshi/" title="4K影视图片">4K影视</a><a href="/4kmingxing/" title="4K明星图片">4K明星</a><a href="/4kqiche/" title="4K汽车图片">4K汽车</a><a href="/4kdongwu/" title="4K动物图片">4K动物</a><a href="/4krenwu/" title="4K人物图片">4K人物</a><a href="/4kmeishi/" title="4K美食图片">4K美食</a><a href="/4kzongjiao/" title="4K宗教图片">4K宗教</a><a href="/4kbeijing/" title="4K背景图片">4K背景</a>
</div>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦
# 提取出 所有类名
tag_list = soup.find_all('a')
for tag in  tag_list:print(tag.text)

​ 结果为:

4K风景
4K美女
4K游戏
4K动漫
4K影视
4K明星
4K汽车
4K动物
4K人物
4K美食
4K宗教
4K背景

3.2 初始化

​ 跟lxml一样,第一个步骤仍然是初始化,这个步骤是固定的,就不多说了,代码如下:

from bs4 import BeautifulSoup
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦
# text为html源码,字符串格式

3.3 通过标签名来获取元素

​ 第一个选择元素的方法,如下示例;

from bs4 import BeautifulSouptext = '''
<div class="classify clearfix"><a href="/4kfengjing/" title="4K风景图片">4K风景</a><a href="/4kmeinv/" title="4K美女图片">4K美女</a><a href="/4kyouxi/" title="4K游戏图片">4K游戏</a><a href="/4kdongman/" class="curr" title="4K动漫图片">4K动漫</a><a href="/4kyingshi/" title="4K影视图片">4K影视</a><a href="/4kmingxing/" title="4K明星图片">4K明星</a><a href="/4kqiche/" title="4K汽车图片">4K汽车</a><a href="/4kdongwu/" title="4K动物图片">4K动物</a><a href="/4krenwu/" title="4K人物图片">4K人物</a><a href="/4kmeishi/" title="4K美食图片">4K美食</a><a href="/4kzongjiao/" title="4K宗教图片">4K宗教</a><a href="/4kbeijing/" title="4K背景图片">4K背景</a>
</div>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦
# 方法一
result = soup.div
print(type(result))
print('-'*50)
print(result)

​ 结果如下:

<class 'bs4.element.Tag'>
--------------------------------------------------
<div class="classify clearfix">
<a href="/4kfengjing/" title="4K风景图片">4K风景</a>
<a href="/4kmeinv/" title="4K美女图片">4K美女</a>
<a href="/4kyouxi/" title="4K游戏图片">4K游戏</a>
<a class="curr" href="/4kdongman/" title="4K动漫图片">4K动漫</a>
<a href="/4kyingshi/" title="4K影视图片">4K影视</a>
<a href="/4kmingxing/" title="4K明星图片">4K明星</a>
<a href="/4kqiche/" title="4K汽车图片">4K汽车</a>
<a href="/4kdongwu/" title="4K动物图片">4K动物</a>
<a href="/4krenwu/" title="4K人物图片">4K人物</a>
<a href="/4kmeishi/" title="4K美食图片">4K美食</a>
<a href="/4kzongjiao/" title="4K宗教图片">4K宗教</a>
<a href="/4kbeijing/" title="4K背景图片">4K背景</a>
</div>

​ 可见,这种方法的语法形式为: xxx.Tag_name。这种选择还支持嵌套选择,如下:

# 为了大家方便,省略了相同的代码,下面只给出需要修改的代码
# 修改之前:result = soup.div
# 修改之后:
result = soup.div.a

​ 结果为::

<class 'bs4.element.Tag'>
--------------------------------------------------
<a href="/4kfengjing/" title="4K风景图片">4K风景</a>

​ 可见,当有多个符合条件的标签时,选择第一个符合的标签。

缺点:选择性很低,无法增加附加条件进行更深层次的筛选。

​ 小小的总结一下:

1.  xxx.Tag_name
2.  当有多个符合条件的标签时,选择第一个符合的标签。

3.4 通过属性来获取元素

​ 主要依靠一些属性来获取,如:contents、children、descendants等等。下面一一讲解其作用:

子节点

​ 属性: contents、children

作用: 获取目标的直接子节点

​ 注意:contents返回的是列表,而children返回的是生成器。

​ 比如:

from bs4 import BeautifulSouptext = '''
<div class="classify clearfix"><a href="/4kfengjing/" title="4K风景图片">4K风景</a><a href="/4kmeinv/" title="4K美女图片">4K美女</a><a href="/4kyouxi/" title="4K游戏图片">4K游戏</a><a href="/4kdongman/" class="curr" title="4K动漫图片">4K动漫</a><a href="/4kyingshi/" title="4K影视图片">4K影视</a><a href="/4kmingxing/" title="4K明星图片">4K明星</a><a href="/4kqiche/" title="4K汽车图片">4K汽车</a><a href="/4kdongwu/" title="4K动物图片">4K动物</a><a href="/4krenwu/" title="4K人物图片">4K人物</a><a href="/4kmeishi/" title="4K美食图片">4K美食</a><a href="/4kzongjiao/" title="4K宗教图片">4K宗教</a><a href="/4kbeijing/" title="4K背景图片">4K背景</a>
</div>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦# 方法二
print(type(soup.div.contents))
for child in soup.div.contents:print(child)

​ 结果为:

<class 'list'>
<a href="/4kfengjing/" title="4K风景图片">4K风景</a>
<a href="/4kmeinv/" title="4K美女图片">4K美女</a>
<a href="/4kyouxi/" title="4K游戏图片">4K游戏</a>
<a class="curr" href="/4kdongman/" title="4K动漫图片">4K动漫</a>
<a href="/4kyingshi/" title="4K影视图片">4K影视</a>
<a href="/4kmingxing/" title="4K明星图片">4K明星</a>
<a href="/4kqiche/" title="4K汽车图片">4K汽车</a>
<a href="/4kdongwu/" title="4K动物图片">4K动物</a>
<a href="/4krenwu/" title="4K人物图片">4K人物</a>
<a href="/4kmeishi/" title="4K美食图片">4K美食</a>
<a href="/4kzongjiao/" title="4K宗教图片">4K宗教</a>
<a href="/4kbeijing/" title="4K背景图片">4K背景</a>

子孙节点:

​ 属性: descendants

作用: 获取目标的所有子孙元素

​ 返回值: 生成器

​ 比如:

from bs4 import BeautifulSoup
text = '''
<ul class="clearfix"><li><a href="/tupian/26783.html" target="_blank"><img src="/uploads/allimg/210122/210154-16113205145cce.jpg" alt="动漫女孩 黑发 露肩 4k壁纸3840x2160" /><b>动漫女孩 黑发 露肩 4k壁</b></a></li><li><a href="/tupian/26780.html" target="_blank"><img src="/uploads/allimg/210122/195550-1611316550c9d7.jpg" alt="古风 美少女 伞 长发 女孩大长腿4k唯美动漫壁纸" /><b>古风 美少女 伞 长发 女</b></a></li><li><a href="/tupian/24695.html" target="_blank"><img src="/uploads/allimg/190824/212516-1566653116f355.jpg" alt="下午 趴在桌子的女孩4k动漫壁纸3840x2160" /><b>下午 趴在桌子的女孩4k动</b></a></li>
</ul>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦# 方法二
print(type(soup.ul.descendants))
for child in soup.ul.descendants:print(child)

​ 结果:

<class 'generator'># 显示其中一个结果
# 从下面可以看出,一一获取里面所有的值<li>
<a href="/tupian/26783.html" target="_blank">
<img alt="动漫女孩 黑发 露肩 4k壁纸3840x2160" src="/uploads/allimg/210122/210154-16113205145cce.jpg"/>
<b>动漫女孩 黑发 露肩 4k壁</b>
</a>
</li><a href="/tupian/26783.html" target="_blank">
<img alt="动漫女孩 黑发 露肩 4k壁纸3840x2160" src="/uploads/allimg/210122/210154-16113205145cce.jpg"/>
<b>动漫女孩 黑发 露肩 4k壁</b>
</a><img alt="动漫女孩 黑发 露肩 4k壁纸3840x2160" src="/uploads/allimg/210122/210154-16113205145cce.jpg"/><b>动漫女孩 黑发 露肩 4k壁</b>
动漫女孩 黑发 露肩 4k壁

父节点:

​ 属性: parent

​ 作用: 获取目标节点的父节点

祖先节点:

​ 属性: parents

​ 作用: 获取目标节点的所有祖先节点

​ 返回值: 生成器

兄弟节点:

​ 属性1 : next_sibling

​ 作用: 获取下一个兄弟节点

​ 属性2 : previous_sibling

​ 作用: 获取上一个兄弟节点

​ 属性3: next_siblings

​ 作用: 获取下面的所有兄弟节点

​ 属性4: previous_siblings

​ 作用: 获取之前的所有兄弟节点

3.5 通过find方法来获取元素(常用)

find_all()方法:

​ 作用: 查询出所有符合条件的元素

​ 常用参数: name、attrs、text

​ 参数讲解:

  • name : 想要获取的节点的节点名字
  • attrs: 想要获取的节点的属性,根据这个属性来筛选,接收字典
  • text: 可以指定正则表达式或者字符串,去匹配元素的内容

​ 示例一:name 和 attrs 的配合使用

from bs4 import BeautifulSoup
text = '''
<ul class="clearfix"><li><a class="hello" href="/tupian/26783.html" target="_blank">你好</a><a class="white" href="/tupian/26783.html" target="_blank">白菜</a><a class="white" href="/tupian/26783.html" target="_blank">白菜</a><a class="white" href="/tupian/26783.html" target="_blank">白菜</a><a class="white" href="/tupian/26783.html" target="_blank">白菜</a><a class="black" href="/tupian/26783.html" target="_blank">黑彩</a></li>
</ul>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦
# 筛选出白菜
result_list = soup.find_all('a',attrs={'class':'white'})
print(type(result_list))
print('-'*50)
for result in result_list:print(result)

​ 结果:

<class 'bs4.element.ResultSet'>
--------------------------------------------------
<a class="white" href="/tupian/26783.html" target="_blank">白菜</a>
<a class="white" href="/tupian/26783.html" target="_blank">白菜</a>
<a class="white" href="/tupian/26783.html" target="_blank">白菜</a>
<a class="white" href="/tupian/26783.html" target="_blank">白菜</a>

​ 示例二: text的使用

import re
from bs4 import BeautifulSoup
text = '''
<ul class="clearfix"><li><a class="hello" href="/tupian/26783.html" target="_blank">你好</a><a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,我是黑菜</a><a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,你好</a><a class="white" href="/tupian/26783.html" target="_blank">我是一个小白菜</a><a class="white" href="/tupian/26783.html" target="_blank">大白菜</a><a class="black" href="/tupian/26783.html" target="_blank">黑彩</a></li>
</ul>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦
# 筛选出白菜
result_list = soup.find_all(text=re.compile(r'白菜'))
for result in result_list:print(result)

​ 结果为:

白菜,你好,我是黑菜
白菜,你好,你好
我是一个小白菜
大白菜

find()方法:

​ 作用: 返回第一个匹配成功的元素

find_parents()和find_parent():

​ find_parents():返回所有的祖先节点

​ find_parent():返回直接父节点

find_next_siblings()和find_next_sibling():

​ find_next_siblings(): 返回后面所有的兄弟节点

​ find_next_sibling(): 返回下一个兄弟节点

find_previous_siblings()和find_previous_sibling():

​ find_previous_siblings(): 返回之前的所有的兄弟节点

​ find_previous_sibling(): 返回上一个兄弟节点

3.6 通过css语法获取元素

​ 如果你学过css,那么你也可以采取css来写,不过我建议你选择pyquery模块来写css,因为pyquery专门使用css来解析网页

​ 写法:

xxx.select('css代码 ')

​ 作用:

返回所有符合css条件的元素

​ 示例:

from bs4 import BeautifulSoup
text = '''
<ul class="clearfix"><li><a class="hello" href="/tupian/26783.html" target="_blank">你好</a><a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,我是黑菜</a><a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,你好</a><a class="white" href="/tupian/26783.html" target="_blank">我是一个小白菜</a><a class="white" href="/tupian/26783.html" target="_blank">大白菜</a><a class="black" href="/tupian/26783.html" target="_blank">黑彩</a></li>
</ul>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦
# 筛选出白菜
result_list = soup.select('.white')
for result in result_list:print(result)

​ 结果如下:

<a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,我是黑菜</a>
<a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,你好</a>
<a class="white" href="/tupian/26783.html" target="_blank">我是一个小白菜</a>
<a class="white" href="/tupian/26783.html" target="_blank">大白菜</a>

3.7 获取信息

​ 元素筛选成功后,我们需要获取元素的一定信息,如:文本信息、属性信息等等。

获取文本信息:

xxx.string:用来获取目标路径下第一个非标签字符串,得到的是个字符串xxx.stings:用来获取目标路径下所有的子孙非标签字符串,返回的是个生成器xxx.stripped_strings:用来获取目标路径下所有的子孙非标签字符串,会自动去掉空白字符串,返回的是一个生成器xxx.get_text():用来获取目标路径下的子孙字符串,返回的是字符串(包含HTML的格式内容)

​ 示例:

from bs4 import BeautifulSoup
text = '''
<ul class="clearfix"><li><a class="hello" href="/tupian/26783.html" target="_blank">你好</a><a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,我是黑菜</a><a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,你好</a><a class="white" href="/tupian/26783.html" target="_blank">我是一个小白菜</a><a class="white" href="/tupian/26783.html" target="_blank">大白菜</a><a class="black" href="/tupian/26783.html" target="_blank">黑彩</a></li>
</ul>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦
# 筛选出白菜
tag = soup.find('li')
print(tag.string)
print(list(tag.strings))
print(list(tag.stripped_strings))
print(tag.get_text())	

​ 结果如下:

None
['\n', '你好', '\n', '白菜,你好,我是黑菜', '\n', '白菜,你好,你好', '\n', '我是一个小白菜', '\n', '大白菜', '\n', '黑彩', '\n']
['你好', '白菜,你好,我是黑菜', '白菜,你好,你好', '我是一个小白菜', '大白菜', '黑彩']你好
白菜,你好,我是黑菜
白菜,你好,你好
我是一个小白菜
大白菜
黑彩

获取属性信息:

xxx.attrs['属性名字']xxx['属性名字']

​ 示例:

from bs4 import BeautifulSoup
text = '''
<ul class="clearfix"><li><a class="hello" href="/tupian/26783.html" target="_blank">你好</a><a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,我是黑菜</a><a class="white" href="/tupian/26783.html" target="_blank">白菜,你好,你好</a><a class="white" href="/tupian/26783.html" target="_blank">我是一个小白菜</a><a class="white" href="/tupian/26783.html" target="_blank">大白菜</a><a class="black" href="/tupian/26783.html" target="_blank">黑彩</a></li>
</ul>
'''
soup = BeautifulSoup(text,'lxml')   # 需要安装lxml库哦
# 筛选出白菜
tag_list = soup.find_all('a')
tag_attr_list_one = [tag.attrs['class'] for tag in tag_list]
tag_attr_list_two = [tag['class'] for tag in tag_list]
print(tag_attr_list_one)
print('-'*50)
print(tag_attr_list_two)

​ 结果:

[['hello'], ['white'], ['white'], ['white'], ['white'], ['black']]
--------------------------------------------------
[['hello'], ['white'], ['white'], ['white'], ['white'], ['black']]

4. 总结

​ 本篇讲解了第二个解析库bs4,当然其实大家不需要了解那么多的解析库,会一两个即可,因此本系列也只讲解lxml、bs4这两个用到最多的解析库,其他的比如pyquery、re都可以自己去学习。

​ 下一篇会将之前的小说实战重新采用bs4来解析。

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

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

相关文章

webSocket 聊天室 node.js 版

全局安装vue脚手架 npm install vue/cli -g 创建 vue3 ts 脚手架 vue create vue3-chatroom 后端代码 src 同级目录下建 server: const express require(express); const app express(); const http require(http); const server http.createServer(app);const io req…

数学建模的概念和学习方法(什么是数学建模)

一、初步认识数学建模 数学建模是将数学方法和技巧应用于实际问题的过程。它涉及使用数学模型来描述和分析现实世界中的现象、系统或过程&#xff0c;并通过数学分析和计算来预测、优化或解决问题。数学建模可以应用于各种领域&#xff0c;包括自然科学、工程、经济学、环境科学…

centos7的flink安装过程

安装步骤 下载flink的tar.gz包修改flink的conf配置下载需要的lib包 具体代码&#xff08;以flink1.15为例&#xff09; # 下载flink的tar.gz包 wget https://archive.apache.org/dist/flink/flink-1.15.4/flink-1.15.4-bin-scala_2.12.tgz tar -zxvf flink-1.15.4-bin-scala…

rust入门系列之Rust介绍及开发环境搭建

Rust教程 Rust基本介绍 网站: https://www.rust-lang.org/ rust是什么 开发rust语言的初衷是&#xff1a; 在软件发展速度跟不上硬件发展速度&#xff0c;无法在语言层面充分的利用硬件多核cpu不断提升的性能和 在系统界别软件开发上&#xff0c;C出生比较早&#xff0c;内…

vue3.0 element-plus 不同版本 el-popover 循环优化

表格内循环el-popover 渲染以后的页面&#xff0c;数据量很大的时候页面会卡&#xff0c;生成的代码&#xff1a; 解决思路&#xff1a;将el-popover提出来&#xff0c;不参与循环&#xff0c;让el-popover只渲染一次 1、以1.1.0-beta.24版为例&#xff08;低版本&#xff09;…

从关键新闻和最新技术看AI行业发展(2023.7.10-7.23第三期) |【WeThinkIn老实人报】

Rocky Ding 公众号&#xff1a;WeThinkIn 写在前面 【WeThinkIn老实人报】本栏目旨在整理&挖掘AI行业的关键新闻和最新技术&#xff0c;同时Rocky会对这些关键信息进行解读&#xff0c;力求让读者们能从容跟随AI科技潮流。也欢迎大家提出宝贵的优化建议&#xff0c;一起交流…

保险龙头科技进化论:太保的六年

如果从2013年中国首家互联网保险公司——众安在线的成立算起&#xff0c;保险科技在我国的发展已走进第十个年头。十年以来&#xff0c;在政策指引、技术发展和金融机构数字化转型的大背景下&#xff0c;科技赋能保险业高质量发展转型已成为行业共识。 大数据、云计算、人工智…

Linux笔试题(4)

67、在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是__C_ A.主机ip设置有误 B.没有设置连接局域网的网关 C.局域网的网关或主机的网关设置有误 D.局域网DNS服务器设置有误 解析&#xff1a;在局域网络内的某台主…

Nginx 配置https以及wss

一、申请https证书 可以在阿里云申请免费ssl证书&#xff0c;一年更换一次 二、Nginx配置ssl upstream tomcat_web{server 127.0.0.1:8080; }server {listen 443 ssl;server_name www.xxx.com;## 配置日志文件access_log /var/log/nginx/web/xxx-ssl-access.log main;er…

Python爬虫的scrapy的学习(学习于b站尚硅谷)

目录 一、scrapy  1. scrapy的安装  &#xff08;1&#xff09;什么是scrapy  &#xff08;2&#xff09;scrapy的安装 2. scrapy的基本使用  &#xff08;1&#xff09;scrap的使用步骤  &#xff08;2&#xff09;代码的演示 3. scrapy之58同城项目结构和基本方法&…

2023 最新 小丫软件库app开源源码 PHP后端

上传了源码解压之后&#xff0c;在admin/public/config.php修改后台登录账号和密码 后台地址&#xff1a;域名或者ip/admin 然后自己修改配置即可 后端搭建完成&#xff0c;现在导入iapp源码 导入iapp源码之后&#xff0c;修改mian.iyu载入事件的对接api和url就可以打包了 sss …

React Native 环境搭建

本文以 Android 开发环境&#xff08;MacBook&#xff0c;已安装 JDK、SDK、Android Studio &#xff09;为基础而进行 React Native 环境搭建&#xff0c;iOS 环境类似&#xff0c;可参考搭建。 1、安装 Homebrew 命令&#xff1a; ruby -e "$(curl -fsSL https://raw…

【OpenVINOSharp】在英特尔® 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型

在英特尔 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型 一、英特尔开发套件 AIxBoard 介绍1. 产品定位2. 产品参数3. AI推理单元 二、配置 .NET 环境1. 添加 Microsoft 包存储库2. 安装 SDK3. 测试安装4. 测试控制台项目 三、安装 OpenVINO Runtime1. 下载 OpenVINO…

Linux/Ubuntu 的日常升级和安全更新,如何操作?

我安装的是Ubuntu 20.04.6 LTS的Windows上Linux子系统版本&#xff0c;启动完成后显示&#xff1a; Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.90.4-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.c…

【JS 贪心算法常见步骤】

贪心算法是一种解决优化问题的算法&#xff0c;其思想是在每一步选择中选择当前状态下最优解&#xff0c;从而达到全局最优解的目的。 以下是贪心算法的一些常见步骤&#xff1a; 将问题模型化为一个包含若干子问题的问题集合&#xff0c;每个子问题都有一个最优解。 对于每个…

中国大学生服务外包创新创业大赛丨借 AI 之力,助“记账”难题

一、中国大学生服务外包创新创业大赛 赛事介绍 中国大学生服务外包创新创业大赛&#xff0c;是响应国家关于鼓励服务外包产业发展、加强服务外包人才培养的相关战略举措与号召&#xff0c;举办的每年一届的全国性竞赛。 大赛均由中华人民共和国教育部、中华人民共和国商务部…

火山引擎ByteHouse:一套方案,让OLAP引擎在精准投放场景更高效

由于流量红利逐渐消退&#xff0c;越来越多的广告企业和从业者开始探索精细化营销的新路径&#xff0c;取代以往的全流量、粗放式的广告轰炸。精细化营销意味着要在数以亿计的人群中优选出那些最具潜力的目标受众&#xff0c;这无疑对提供基础引擎支持的数据仓库能力&#xff0…

【微信小程序】列表滚动触底更新实现

微信小程序开发系列 目录 前言一、上拉触底事件函数onReachBottom二、实现 前言 在微信小程序开发中经常遇到分页列表需要滚动到底部之后进行请求数据更新&#xff0c;下面介绍如何进行触底更新分页展示。使用到页面上拉触底事件的处理函数onReachBottom。 一、上拉触底事件函…

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息

文章目录 演示CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息lookupSignalDBLookup代码问题:DBLookup(信号名).AttributeName报错问题: motorola格式的信号使用DBLookup获取信号的bitstart跟ig模块里的信息不一样演示 CAPL通过lookupSignal和DBLookup获取DBC信号的属性…

奥威BI数据可视化工具:360度呈现数据,告别枯燥表格

随着企业数据量的不断增加&#xff0c;如何有效地进行数据分析与决策变得越来越重要。奥威BI数据可视化工具作为一款强大的数据分析工具&#xff0c;在帮助企业深入挖掘数据价值方面具有显著优势。 奥威BI数据可视化工具是一款基于数据仓库技术的数据分析工具&#xff0c;具有…