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

feedparser - Python 解析Atom和RSSfeed

文章目录

    • 一、关于 feedparser
    • 二、安装
    • 三、关于文档及构建
    • 四、测试
    • 五、常见RSS元素
      • 访问常见 Channel 元素
      • 访问常用项目元素
    • 六、常见Atom元素
      • 访问常用feed元素
      • 访问公共入口元素
    • 七、获取Atom元素的详细信息
      • Feed元素的详细信息
    • 八、测试元素是否存在
    • 九、其他功能 & 文档
      • 高级功能
      • HTTP特性
    • 十、Reference


一、关于 feedparser

  • github : https://github.com/kurtmckee/feedparser
  • 文档:https://feedparser.readthedocs.io/en/latest/

在Python中解析Atom和RSSfeed。


二、安装

可以通过运行pip来安装:

pip install feedparser

三、关于文档及构建

feedparser 文档 :https://feedparser.readthedocs.io/en/latest/


它还包含在docs/目录中的源格式 ReST中。

要构建文档,您需要Sphinx包,下载地址:https://www.sphinx-doc.org/

然后,您可以使用类似于以下命令,构建 HTML 页面:

sphinx-build -b html docs/ fpdocs

这将在fpdocs/目录中,产生HTML文档。


四、测试

Feedparser 有一个广泛的测试套件,由Tox提供支持。要运行它,请键入以下内容:

$ python -m venv venv
$ source venv/bin/activate  # or "venv\bin\activate.ps1" on Windows
(venv) $ python -m pip install --upgrade pip
(venv) $ python -m pip install tox
(venv) $ tox

五、常见RSS元素

RSS feeds 中最常用的元素(无论版本如何)是标题、链接、描述、发布日期和条目ID。发布日期来自 pubDate 元素,条目ID 来自guid元素。

此示例RSSfeed位于 https://feedparser.readthedocs.io/en/latest/examples/rss20.xml。

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Sample Feed</title>
<description>For documentation &lt;em&gt;only&lt;/em&gt;</description>
<link>http://example.org/</link>
<pubDate>Sat, 07 Sep 2002 00:00:01 GMT</pubDate>
<!-- other elements omitted from this example -->
<item>
<title>First entry title</title>
<link>http://example.org/entry/3</link>
<description>Watch out for &lt;span style="background-image:
url(javascript:window.location='http://example.org/')"&gt;nasty
tricks&lt;/span&gt;</description>
<pubDate>Thu, 05 Sep 2002 00:00:01 GMT</pubDate>
<guid>http://example.org/entry/3</guid>
<!-- other elements omitted from this example -->
</item>
</channel>
</rss>

通道元素在d.feed中可用。


访问常见 Channel 元素

>>> import feedparser
>>> d = feedparser.parse('https://feedparser.readthedocs.io/en/latest/examples/rss20.xml')
>>> d.feed.title
'Sample Feed'
>>> d.feed.link
'http://example.org/'
>>> d.feed.description
'For documentation <em>only</em>'
>>> d.feed.published
'Sat, 07 Sep 2002 00:00:01 GMT'
>>> d.feed.published_parsed
(2002, 9, 7, 0, 0, 1, 5, 250, 0)

d.entries中的这些项目可用,这是一个列表。

您可以按照它们在原始feed中出现的顺序 访问列表中的项目,因此在d.entries[0]中的第一个项目可用。


访问常用项目元素

>>> import feedparser
>>> d = feedparser.parse('https://feedparser.readthedocs.io/en/latest/examples/rss20.xml')
>>> d.entries[0].title
'First item title'
>>> d.entries[0].link
'http://example.org/item/1'
>>> d.entries[0].description
'Watch out for <span>nasty tricks</span>'
>>> d.entries[0].published
'Thu, 05 Sep 2002 00:00:01 GMT'
>>> d.entries[0].published_parsed
(2002, 9, 5, 0, 0, 1, 3, 248, 0)
>>> d.entries[0].id
'http://example.org/guid/1'

注:您还可以使用Atom术语 从RSSfeed访问数据。有关详细信息,请参阅 Content Normalization 。


六、常见Atom元素

Atomfeed通常比RSSfeed包含更多信息(因为需要更多元素),但最常用的元素仍然是标题、链接、副标题/描述、各种日期和ID。

此示例Atomfeed https://feedparser.readthedocs.io/en/latest/examples/atom10.xml 。

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xml:base="http://example.org/"
xml:lang="en">
<title type="text">Sample Feed</title>
<subtitle type="html">
For documentation &lt;em&gt;only&lt;/em&gt;
</subtitle>
<link rel="alternate" href="/"/>
<link rel="self"
type="application/atom+xml"
href="http://www.example.org/atom10.xml"/>
<rights type="html">
&lt;p>Copyright 2005, Mark Pilgrim&lt;/p>&lt;
</rights>
<id>tag:feedparser.org,2005-11-09:/docs/examples/atom10.xml</id>
<generator
uri="http://example.org/generator/"
version="4.0">
Sample Toolkit
</generator>
<updated>2005-11-09T11:56:34Z</updated>
<entry>
<title>First entry title</title>
<link rel="alternate"
href="/entry/3"/>
<link rel="related"
type="text/html"
href="http://search.example.com/"/>
<link rel="via"
type="text/html"
href="http://toby.example.com/examples/atom10"/>
<link rel="enclosure"
type="video/mpeg4"
href="http://www.example.com/movie.mp4"
length="42301"/>
<id>tag:feedparser.org,2005-11-09:/docs/examples/atom10.xml:3</id>
<published>2005-11-09T00:23:47Z</published>
<updated>2005-11-09T11:56:34Z</updated>
<summary type="text/plain" mode="escaped">Watch out for nasty tricks</summary>
<content type="application/xhtml+xml" mode="xml"
xml:base="http://example.org/entry/3" xml:lang="en-US">
<div xmlns="http://www.w3.org/1999/xhtml">Watch out for
<span style="background: url(javascript:window.location='http://example.org/')">
nasty tricks</span></div>
</content>
</entry>
</feed>

feed 元素在d.feed中可用。


访问常用feed元素

>>> import feedparser
>>> d = feedparser.parse('https://feedparser.readthedocs.io/en/latest/examples/atom10.xml')
>>> d.feed.title
'Sample feed'
>>> d.feed.link
'http://example.org/'
>>> d.feed.subtitle
'For documentation <em>only</em>'
>>> d.feed.updated
'2005-11-09T11:56:34Z'
>>> d.feed.updated_parsed
(2005, 11, 9, 11, 56, 34, 2, 313, 0)
>>> d.feed.id
'tag:feedparser.org,2005-11-09:/docs/examples/atom10.xml'

条目在d.entries中可用,这是一个列表。

您可以在 它们在原始feed中出现的顺序,因此第一个条目是 d.entries[0]


访问公共入口元素

>>> import feedparser
>>> d = feedparser.parse('https://feedparser.readthedocs.io/en/latest/examples/atom10.xml')
>>> d.entries[0].title
'First entry title'
>>> d.entries[0].link
'http://example.org/entry/3
>>> d.entries[0].id
'tag:feedparser.org,2005-11-09:/docs/examples/atom10.xml:3'
>>> d.entries[0].published
'2005-11-09T00:23:47Z'
>>> d.entries[0].published_parsed
(2005, 11, 9, 0, 23, 47, 2, 313, 0)
>>> d.entries[0].updated
'2005-11-09T11:56:34Z'
>>> d.entries[0].updated_parsed
(2005, 11, 9, 11, 56, 34, 2, 313, 0)
>>> d.entries[0].summary
'Watch out for nasty tricks'
>>> d.entries[0].content
[{'type': 'application/xhtml+xml',
'base': 'http://example.org/entry/3',
'language': 'en-US',
'value': '<div>Watch out for <span>nasty tricks</span></div>'}]

注:解析后的摘要和内容 与它们出现在 原始feed 不用。原始元素包含危险的超文本标记语言标记,已被清理。详见 Sanitization 。

因为Atom条目可以有多个内容元素, d.entries[0].content是字典的列表。

每个字典包含 关于单个内容元素的元信息。

字典中最重要的两个值是 内容类型(在d.entries[0].content[0].type中)和 实际内容值(在d.entries[0].content[0].value中)。

您也可以在其他Atom元素上获得此详细级别。


七、获取Atom元素的详细信息

几个Atom元素共享Atom内容模型:标题、副标题、权利、摘要,当然还有内容。(Atom 0.3也有一个共享此内容模型的info元素。)

通用Feed Parser 捕获关于这些元素的所有相关元信息,最重要的是体裁和值本身。


Feed元素的详细信息

>>> import feedparser
>>> d = feedparser.parse('https://feedparser.readthedocs.io/en/latest/examples/atom10.xml')
>>> d.feed.title_detail
{'type': 'text/plain',
'base': 'http://example.org/',
'language': 'en',
'value': 'Sample Feed'}
>>> d.feed.subtitle_detail
{'type': 'text/html',
'base': 'http://example.org/',
'language': 'en',
'value': 'For documentation <em>only</em>'}
>>> d.feed.rights_detail
{'type': 'text/html',
'base': 'http://example.org/',
'language': 'en',
'value': '<p>Copyright 2004, Mark Pilgrim</p>'}
>>> d.entries[0].title_detail
{'type': 'text/plain',
'base': 'http://example.org/',
'language': 'en',
'value': 'First entry title'}
>>> d.entries[0].summary_detail
{'type': 'text/plain',
'base': 'http://example.org/',
'language': 'en',
'value': 'Watch out for nasty tricks'}
>>> len(d.entries[0].content)
1
>>> d.entries[0].content[0]
{'type': 'application/xhtml+xml',
'base': 'http://example.org/entry/3',
'language': 'en-US'
'value': '<div>Watch out for <span> nasty tricks</span></div>'}

八、测试元素是否存在

现实世界中的Feeds可能缺少元素,甚至是规范要求的元素。

在获取元素值之前,您应该始终测试元素的存在。永远不要假设元素存在。

要测试元素是否存在,可以使用标准Python字典习语。

>>> import feedparser
>>> d = feedparser.parse('https://feedparser.readthedocs.io/en/latest/examples/atom10.xml')
>>> 'title' in d.feed
True
>>> 'ttl' in d.feed
False
>>> d.feed.get('title', 'No title')
'Sample feed'
>>> d.feed.get('ttl', 60)
60

九、其他功能 & 文档


高级功能

  • 日期解析
  • 日期格式的历史
  • 识别日期格式
  • 支持其他日期格式
  • Sanitization
    • HTML Sanitization
    • SVG Sanitization
    • MathML Sanitization
    • CSS Sanitization
    • 列入白名单,不要列入黑名单
  • 内容标准化
  • 将Atom feed 作为RSS feed 访问
  • 将RSS feed 作为Atom feed 访问
  • 命名空间处理
  • 访问命名空间元素
  • 使用非标准前缀 访问命名空间元素
  • Relative Link Resolution
    • 哪些值是URI
    • 如何解决相对URI
    • 禁用相对URI解析
  • Feed Type and Version Detection feed类型和版本检测
    • 访问feed版本
  • 字符编码检测
  • 字符编码简介
  • 处理 Incorrectly-Declared 编码
  • 处理 Incorrectly-Declared 媒体类型
  • Bozo 检测
    • 检测格式不正确的反馈

HTTP特性

  • ETag 和最后修改的头文件
    • 使用ETags减少带宽
    • 使用Last-Modified 头文件来减少带宽
  • User-Agent和Referer 头文件
    • 自定义 User-Agent
    • 永久自定义 User-Agent
    • 自定义 referrer
  • HTTP重定向
    • 注意临时重定向
    • 注意永久重定向
    • 注意标记为“gone”的feeds
  • 受密码保护的feed
    • 下载 受基本鉴权保护 的 feed(简单方法)
    • 下载 受摘要鉴权保护的feed(简单但非常不安全的方式)
    • 下载受HTTP基本鉴权保护的feed(硬方法)
    • 下载受HTTP摘要鉴权保护的feed(安全方式)
    • 确定feed受密码保护
  • 其他HTTP 头文件
    • 发送自定义HTTP请求 头文件
    • 访问其他HTTP响应 头文件

十、Reference

  • bozo
  • bozo_exception
  • encoding
  • entries
  • entries[i\].author
  • entries[i].author_detail
    • entries[i\].author_detail.name
    • entries[i\].author_detail.href
    • entries[i\].author_detail.email
  • entries[i\].comments
  • entries[i].content
    • entries[i\].content[j].value
    • entries[i\].content[j].type
    • entries[i\].content[j].language
    • entries[i\].content[j].base
  • entries[i].contributors
    • entries[i\].contributors[j].name
    • entries[i\].contributors[j].href
    • entries[i\].contributors[j].email
  • entries[i\].created
  • entries[i\].created_parsed
  • entries[i].enclosures
    • entries[i\].enclosures[j].href
    • entries[i\].enclosures[j].length
    • entries[i\].enclosures[j].type
  • entries[i\].expired
  • entries[i\].expired_parsed
  • entries[i\].id
  • entries[i\].license
  • entries[i\].link
  • entries[i].links
    • entries[i\].links[j].rel
    • entries[i\].links[j].type
    • entries[i\].links[j].href
    • entries[i\].links[j].title
  • entries[i\].published
  • entries[i\].published_parsed
  • entries[i\].publisher
  • entries[i].publisher_detail
    • entries[i\].publisher_detail.name
    • entries[i\].publisher_detail.href
    • entries[i\].publisher_detail.email
  • entries[i].source
    • entries[i\].source.author
    • entries[i\].source.author_detail
    • entries[i\].source.contributors
    • entries[i\].source.icon
    • entries[i\].source.id
    • entries[i\].source.link
    • entries[i\].source.links
    • entries[i\].source.logo
    • entries[i\].source.rights
    • entries[i\].source.rights_detail
    • entries[i\].source.subtitle
    • entries[i\].source.subtitle_detail
    • entries[i\].source.title
    • entries[i\].source.title_detail
    • entries[i\].source.updated
    • entries[i\].source.updated_parsed
  • entries[i\].summary
  • entries[i].summary_detail
    • entries[i\].summary_detail.value
    • entries[i\].summary_detail.type
    • entries[i\].summary_detail.language
    • entries[i\].summary_detail.base
  • entries[i].tags
    • entries[i\].tags[j].term
    • entries[i\].tags[j].scheme
    • entries[i\].tags[j].label
  • entries[i\].title
  • entries[i].title_detail
    • entries[i\].title_detail.value
    • entries[i\].title_detail.type
    • entries[i\].title_detail.language
    • entries[i\].title_detail.base
  • entries[i\].updated
  • entries[i\].updated_parsed
  • etag
  • feed
  • feed.author
  • feed.author_detail
    • feed.author_detail.name
    • feed.author_detail.href
    • feed.author_detail.email
  • feed.cloud
    • feed.cloud.domain
    • feed.cloud.port
    • feed.cloud.path
    • feed.cloud.registerProcedure
    • feed.cloud.protocol
  • feed.contributors
    • feed.contributors[i\].name
    • feed.contributors[i\].href
    • feed.contributors[i\].email
  • feed.docs
  • feed.errorreportsto
  • feed.generator
  • feed.generator_detail
    • feed.generator_detail.name
    • feed.generator_detail.href
    • feed.generator_detail.version
  • feed.icon
  • feed.id
  • feed.image
    • feed.image.title
    • feed.image.href
    • feed.image.link
    • feed.image.width
    • feed.image.height
    • feed.image.description
  • feed.info
  • feed.info_detail
    • feed.info_detail.value
    • feed.info_detail.type
    • feed.info_detail.language
    • feed.info_detail.base
  • feed.language
  • feed.license
  • feed.link
  • feed.links
    • feed.links[i\].rel
    • feed.links[i\].type
    • feed.links[i\].href
    • feed.links[i\].title
  • feed.logo
  • feed.published
  • feed.published_parsed
  • feed.publisher
  • feed.publisher_detail
    • feed.publisher_detail.name
    • feed.publisher_detail.href
    • feed.publisher_detail.email
  • feed.rights
  • feed.rights_detail
    • feed.rights_detail.value
    • feed.rights_detail.type
    • feed.rights_detail.language
    • feed.rights_detail.base
  • feed.subtitle
  • feed.subtitle_detail
    • feed.subtitle_detail.value
    • feed.subtitle_detail.type
    • feed.subtitle_detail.language
    • feed.subtitle_detail.base
  • feed.tags
    • feed.tags[i\].term
    • feed.tags[i\].scheme
    • feed.tags[i\].label
  • feed.textinput
    • feed.textinput.title
    • feed.textinput.link
    • feed.textinput.name
    • feed.textinput.description
  • feed.title
  • feed.title_detail
    • feed.title_detail.value
    • feed.title_detail.type
    • feed.title_detail.language
    • feed.title_detail.base
  • feed.ttl
  • feed.updated
  • feed.updated_parsed
  • headers
  • href
  • modified
  • namespaces
  • status
  • version

2024-06-07(五)

相关文章:

feedparser - Python 解析Atom和RSSfeed

文章目录 一、关于 feedparser二、安装三、关于文档及构建四、测试五、常见RSS元素访问常见 Channel 元素访问常用项目元素 六、常见Atom元素访问常用feed元素访问公共入口元素 七、获取Atom元素的详细信息Feed元素的详细信息 八、测试元素是否存在九、其他功能 & 文档高级…...

ARM32开发--IIC时钟案例

知不足而奋进 望远山而前行 目录 文章目录 前言 目标 内容 需求 开发流程 移植驱动 修改I2C实现 测试功能 总结 前言 在现代嵌入式系统开发中&#xff0c;移植外设驱动并测试其功能是一项常见的任务。本次学习的目标是掌握移植方法和测试方法&#xff0c;以实现对开…...

[深度学习]基于C++和onnxruntime部署yolov10的onnx模型

基于C和ONNX Runtime部署YOLOv10的ONNX模型&#xff0c;可以遵循以下步骤&#xff1a; 准备环境&#xff1a;首先&#xff0c;确保已经下载后指定版本opencv和onnruntime的C库。 模型转换&#xff1a;按照官方源码&#xff1a;https://github.com/THU-MIG/yolov10 安装好yolov…...

Spring-事件

Java 事件/监听器编程模型 设计模式-观察者模式的拓展 可观察者对象(消息发送者) Java.util.Observalbe观察者 java.util.Observer 标准化接口(标记接口) 事件对象 java.util.EventObject事件监听器 java.util.EventListener public class ObserverDemo {public static vo…...

delmia的工序设置

process的设置需要在workcell sequuencing里面去设置...

【JavaEE精炼宝库】多线程(5)单例模式 | 指令重排序 | 阻塞队列

目录 一、单例模式&#xff1a; 1.1 饿汉模式&#xff1a; 1.2 懒汉模式&#xff1a; 1.2.1 线程安全的懒汉模式&#xff1a; 1.2.2 线程安全的懒汉模式的优化&#xff1a; 二、指令重排序 三、阻塞队列 3.1 阻塞队列的概念&#xff1a; 3.2 生产者消费者模型&#xf…...

[图解]《分析模式》漫谈03-Party是什么

1 00:00:00,790 --> 00:00:03,930 今天我们来看一下&#xff0c;Party是什么 2 00:00:05,710 --> 00:00:07,470 当然我们这里说的不是政治的 3 00:00:07,880 --> 00:00:08,350 Party 4 00:00:09,230 --> 00:00:11,110 是《分析模式》里面的一个用词 5 00:00:14…...

【Numpy】一文向您详细介绍 np.abs()

【Numpy】一文向您详细介绍 np.abs() 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#xff0c;曾…...

【AI绘画】Stable Diffusion 3开源

Open Release of Stable Diffusion 3 Medium 主要内容 Stable Diffusion 3是Stability AI目前为止最先进的文本转图像开放源代码算法。 这款模型的小巧设计使其完美适合用于消费级PC和笔记本电脑&#xff0c;以及企业级图形处理单元上运行。它已经满足了标准化的文字转图像模…...

使用ant-design/cssinjs向plasmo浏览器插件的内容脚本content中注入antd的ui组件样式

之前写过一篇文章用来向content内容脚本注入antd的ui&#xff1a;https://xiaoshen.blog.csdn.net/article/details/136418199&#xff0c;但是方法就是比较繁琐&#xff0c;需要将antd的样式拷贝出来&#xff0c;然后贴到一个单独的css样式文件中&#xff0c;然后引入到内容脚…...

南京威雅学校:初中转轨国际化教育,她们打开了成长的另一种可能

“上了大学就轻松了。” 又是一年高考季&#xff0c;每每回想起十八岁前那些没日没夜埋头学习的日子&#xff0c;已经为人父母的你是不是也忍不住想要孩子气地吐槽一句&#xff0c;“骗人”——人不会在一场考试后瞬间长大&#xff0c;试卷里也没有人生的全部答案。 三年前&a…...

Linux | 标准IO编程

Linux | 标准IO编程 时间:2024年6月8日23:03:43 文章目录 `Linux` | 标准`IO`编程1.标准`IO`编程1-1.流的打开函数fopen()1-2.流的关闭函数fclose()1-3.错误处理函数perror()函数strerror()errno 变量总结1-4.流的读写1-4-1.按字符(字节)输入/输出实例1-4-2.按行输入/输出1-…...

从ES的JVM配置起步思考JVM常见参数优化

目录 一、真实查看参数 &#xff08;一&#xff09;-XX:PrintCommandLineFlags &#xff08;二&#xff09;-XX:PrintFlagsFinal 二、堆空间的配置 &#xff08;一&#xff09;默认配置 &#xff08;二&#xff09;配置Elasticsearch堆内存时&#xff0c;将初始大小设置为…...

milvus的GPU索引

前言 milvus支持多种GPU索引类型&#xff0c;它能加速查询的性能和效率&#xff0c;特别是在高吞吐量&#xff0c;低延迟和高召回率的场景。本文我们将介绍milvus支持的各种GPU索引类型以及它们适用的场景、性能特点。 下图展示了milvus的几种索引的查询性能对比&#xff0c;…...

CleanMyMac2024最新免费电脑Mac系统优化工具

大家好&#xff0c;我是你们的好朋友——软件评测专家&#xff0c;同时也是一名技术博主。今天我要给大家种草一个超级实用的Mac优化工具——CleanMyMac&#xff01; 作为一个长期使用macOS的用户&#xff0c;我深知系统运行时间长了&#xff0c;缓存文件、日志、临时文件等都会…...

catia/delmia的快捷图标模式最多12个

这儿最多显示12个 根据官方文档 If you installed a configuration containing more than 12 workbenches (such as the "AL2" configuration), only the first 12 workbenches are displayed in the Favorites list. The other workbenches do not appear in the l…...

磁盘性能概述与磁盘调度算法

目录 1. 磁盘性能概述 1. 数据传输速率 2. 寻道时间 3. 旋转延迟 4. 平均访问时间 2. 早期的磁盘调度算法 1. FIFO&#xff08;First-In-First-Out&#xff09;调度算法 2. SSTF&#xff08;Shortest Seek Time First&#xff09;调度算法 3. SCAN&#xff08;Elevator…...

chrome浏览器设置--disable-web-security解决跨域

在开发人员于后台进行接口测试的时候&#xff0c;老是遇到跨域问题&#xff0c;这时前端总是会让后台添加跨域请求头来允许跨域请求&#xff0c;今天介绍一个简单的方法跨过这一步操作的设置。 –disable-web-security参数&#xff0c;禁用同源策略&#xff0c;利于开发人员本…...

Android中蓝牙设备的状态值管理

在Android中&#xff0c;蓝牙状态可以通过多种方式来描述&#xff0c;主要包括蓝牙适配器状态、蓝牙设备连接状态以及蓝牙广播状态&#xff0c;其关键的蓝牙状态实现类有BluetoothAdapter、BluetoothDevicePairer、BluetoothDevice、BluetoothProfile&#xff0c;详细介绍如下&…...

关于ReactV18的页面跳转传参和接收

一、使用路由方式进行传参和接收&#xff08;此处需使用 useNavigate 和 useParams 两个hooks&#xff09; 1 首先需要配置好路由形式如下 :id(参数) { path: "/articleDetail/:id", element: lazyElement(<ArticleDetail />), }, 2 传递参数 使用 useNaviga…...

南京观海微电子-----PCB设计怎样降低EMI

开关模式电源是AC-DC或DC-DC电源的通用术语&#xff0c;这些电源使用具有快速开关动作的电路进行电压转换/转换(降压或升压)。随着每天开发出更多的设备(潜在的EMI受害者)&#xff0c;克服EMI成为工程师面临的主要挑战&#xff0c;并且实现电磁兼容性(EMC)与使设备正常运行同等…...

黑苹果/Mac如何升级 Mac 新系统 Sequoia Beta 版

Mac升级教程 有必要提醒一下大家&#xff0c;开发者测试版系统一般是给开发者测试用的&#xff0c;可能存在功能不完善、部分软件不兼容的情况&#xff0c;所以不建议普通用户升级&#xff0c;如果实在忍不住&#xff0c;升级之前记得做好备份。 升级方法很简单&#xff1a; …...

2024年主流工单系统横向对比

一&#xff1a;智齿科技 智齿客服App可以接收工单、查看工单、分配工单、处理工单&#xff0c;客户问题随时随地快速解决。 与云客户中心实时连接&#xff0c;客户以往的浏览轨迹、聊天信息、通话记录、工单历史一目了然。 配合智齿云呼叫中心/机器人客服/人工在线客服&…...

实用软件下载:Studio One最新安装包及详细安装教程

Studio One 6是一款功能丰富、专业级的音乐制作软件&#xff0c;它具备灵活的工作流程和高效的团队协作能力&#xff0c;能帮助用户实现高质量的音乐创作和制作。 智能模板更快的启动&#xff0c;全新的智能模板为你手头的任务提供了必要的工具集&#xff0c;包括基本录制、混音…...

网络安全练气篇——常见服务端口对应漏洞

常见的端口所对应的已知漏洞 21 FTP服务的数据传输端口 22 FTP服务的连接端口&#xff0c;可能存在 弱口令暴力破解 389 LDAP目录访问协议&#xff0c;有可能存在注入、弱口令 443 HTTPS端口&#xff0c;心脏滴血等与SSL有关的漏洞 445 SMB服务端口&#xff0c;可能存…...

WPF学习(3)--不同类通过接口实现同种方法

一、接口概述 1.接口的概念 在C#中&#xff0c;接口&#xff08;interface&#xff09;是一种引用类型&#xff0c;它定义了一组方法、属性、事件或索引器&#xff0c;但不提供实现。接口只定义成员的签名&#xff0c;而具体的实现由实现接口的类或结构体提供。接口使用关键字…...

体验版小程序访问不到后端接口请求失败问题解决方案

文章目录 解决方案一&#xff1a;配置合法域名解决方案二&#xff1a;开发调试模式第一步&#xff1a;进入开发调试模式第二步&#xff1a;启用开发调试 注意事项结语 &#x1f389;欢迎来到Java面试技巧专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&…...

【Linux文件篇】磁盘到用户空间:Linux文件系统架构全景

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 前言&#xff1a;我们前面的博客中一直提到的是被进程打开的文件&#xff0c;而系统中不仅仅只有被打开的文件还有很多没被打开的文件。如果没有被打开&#xff0c;那么文件是在哪里进行保存的呢?那我们又如何快速定位…...

数据分析-Excel基础函数的使用

Excel基础函数&#xff1a; sum:求和 sumif:单条件求和 sumifs:多条件求和 subtotal:根据筛选求和 if:逻辑判断 vlookup:连接匹配数据 match:查找数值在区域中的位置 index:根据区域的位置返回数值 match、index:一起使用&#xff1a;自动根据列名查找数据 sumifs、match、ind…...

速盾的防护策略有哪些?

在当今数字化时代&#xff0c;网络安全至关重要&#xff0c;而速盾作为一款优秀的安全防护工具&#xff0c;拥有一系列全面且有效的防护策略。 首先&#xff0c;速盾采用了先进的访问控制策略。通过严格的身份验证和授权机制&#xff0c;确保只有合法的用户和应用程序能够访问特…...

绵阳市公司网站建设/建站的公司

1. AOP 初窥 比如如下一段代码&#xff0c;仅仅根据商品 Id 获取商品信息 public GoodsVo getGoodsVoByGoodsId(long goodsId) {return goodsMapper.getGoodsVoByGoodsId(goodsId); }有时候为了便于观察执行情况&#xff0c;会在前后加上日志&#xff0c;这种都很常见吧。 p…...

哪里有南宁网站建设/网址注册

值得注意的是,对于一个纯python程序,更适合使用要调用的c程序。如果python程序包含其他第三方库,调用很可能出错,它不是容易找到原因。通常一个大型python项目,如SSD目标探测、等等,需要调用很多第三方库,和多个模块是相互交织在一起的,虽然当你配置的路径与python项目环境,相对…...

好的兼职做调查网站/百度浏览器app

在windos 的cmd下安装mysql 在mysql的bin目录下面执行&#xff1a; mysqld --install 报错&#xff1a; 信息如下一&#xff1a; Install/Remove of the Service Denied 解决办法&#xff1a; 打开cmd.exe程序的时候选择“用管理员身份打开”。 错误信息二&#xff1a; …...

美国做科普的网站/今日新闻头条新闻

2014年9月2日&#xff0c;魅族召开发布会&#xff0c;公布最新旗舰机型 MX4 &#xff0c;对比几个月前备受关注的锤子手机和小米 M4 &#xff0c;新一代手机品牌的传播方式已经基本成型。再过一周&#xff0c;苹果最新的发布会也将到来&#xff0c;大屏 iPhone 6 的发布已经几乎…...

长沙公司网站开发/世界营销大师排名

提出问题&#xff1a; 回调函数是基于C编程的Windows SDK的技术&#xff0c;不是针对C的&#xff0c;程序员可以将一个C函数直接作为回调函数&#xff0c;但是如果试图直接使用C的成员函数作为回调函数将发生错误&#xff0c;甚至编译就不能通过。分析原因&#xff1a;普通的C成…...

建设小学瓯江校区网站/全网关键词优化公司哪家好

检测断网 断网 window.addEventListener("offline", () > {console.log("已断网"); });网络已连接 window.addEventListener("online", () > {console.log("网络已连接"); });...