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(五)

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

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

相关文章

计算机视觉与深度学习实战,Python为工具,知识库的手写体数字识别

随着人工智能技术的飞速发展,计算机视觉与深度学习已成为当今科技领域的热点。手写体数字识别作为计算机视觉的一个重要应用,不仅在邮政编码、银行支票处理等方面有广泛应用,也是机器学习和深度学习入门者的经典实战案例。本文将通过Python这一强大工具,介绍如何使用深度学…

neutron

如何维护open stack的逻辑状态 网络资源的抽象和表示&#xff1a; Neutron将网络、子网、路由器、端口等网络资源抽象为相应的数据模型&#xff0c;并在数据库中持久化存储。每个资源都有一个唯一的标识符&#xff08;ID&#xff09;&#xff0c;并通过RESTful API进行管理和操…

eBay测评,自养号应该如何做?

测评自养号就是自己搭建国外的服务器和IP环境&#xff0c;实现自己注册eBay的买家账号&#xff0c;通过电脑端环境一台电脑就可以无限养号&#xff0c;一次可以开十几个窗口同时浏览下单&#xff0c;每个窗口都是独立的环境&#xff0c;一账号一环境一IP一卡 买家账号掌握在卖…

酷开科技丨酷开系统智慧中心,解锁AI智能家居生活的无限可能

想象一下&#xff0c;未来的AI电视不再是冷冰冰的机器&#xff0c;而是家庭的智能伙伴。它学习你的喜好&#xff0c;预测你的需求&#xff0c;用声音和触感与你交流。它控制家中的灯光、温度&#xff0c;甚至帮你订购生活用品。 在探索智能家居的未来发展时&#xff0c;酷开系…

redis的分布式session和本地的session有啥区别

在web应用开发中&#xff0c;Session用于在多个请求之间存储用户数据。传统上&#xff0c;Session存储在服务器的内存中&#xff0c;即本地Session。然而&#xff0c;随着应用规模和复杂度的增加&#xff0c;特别是在分布式环境中&#xff0c;本地Session会遇到一些问题。这时&…

Oracle数据库之 函数(十七)

在Oracle数据库中&#xff0c;函数&#xff08;Functions&#xff09;是用于执行特定计算或操作并返回值的命名PL/SQL块。以下是关于Oracle函数的基本操作&#xff0c;包括创建、调用和删除函数的详细步骤和说明。 1. 创建Oracle函数 创建Oracle函数需要使用CREATE OR REPLAC…

Day01 数据结构概述

目录 一、数据结构概述 1、基本概念 2、数据结构 3、逻辑关系&#xff08;线性结构&非线性结构&#xff09; 4、物理结构&#xff08;存储结构&#xff09; 5、算法 6、算法特征 二、时空复杂度 1、时间复杂度 2、空间复杂度 3、结构类型 一、数据结构概述 1、…

FullCalendar日历组件集成实战(12)

背景 有一些应用系统或应用功能&#xff0c;如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件&#xff0c;但功能比较简单&#xff0c;用来做数据展现勉强可用。但如果需要进行复杂的数据展示&#xff0c;以及互动操作如通过点击添加事件&#xff0…

记Windows环境下JDK安装配置

写在文章开头 这是笔者非常早期接触Java时写的文章&#xff0c;为方便每次系统重装时能够快速完成JDK解压版安装配置遂用此文记录了一下整个过程。 Hi&#xff0c;我是 sharkChili &#xff0c;是个不断在硬核技术上作死的 java coder &#xff0c;是 CSDN的博客专家 &#x…

springboot和mybatis项目学习

#项目整体样貌 ##bean package com.example.demo.bean;public class informationBean {private int id;private String name;private String password;private String attchfile;public int getId() {return id;}public String getName() {return name;}public String getPas…

基于Java技术的ERP管理系统:企业资源规划的先进解决方案

在当前数字化转型的趋势下&#xff0c;企业对于高效、稳定且具备扩展性的管理系统的需求日益增加。为了满足这一需求&#xff0c;我们开发了一款基于Java技术的鸿鹄ERP&#xff08;企业资源规划&#xff09;管理系统。该系统采用了Spring Cloud Alibaba、Spring Boot、MybatisP…

Unity Protobuf+RPC+UniTask

远程过程调用&#xff08;RPC&#xff09;协议详解 什么是RPC协议RPC的基本原理RPC的关键组件RPC的优缺点Protobuf函数绑定CallEncodeRecvDecodeSocket.Send和Recv项目地址 什么是RPC协议 远程过程调用&#xff08;Remote Procedure Call&#xff0c;简称RPC&#xff09;是一种…

WPF学习(1)--类与类的继承

在面向对象编程中&#xff0c;继承是一种机制&#xff0c;允许一个类&#xff08;称为子类或派生类&#xff09;从另一个类&#xff08;称为父类或基类&#xff09;继承属性和方法。继承使我们能够创建一个通用类&#xff0c;然后根据需要扩展或修改它以创建更具体的类。以下是…

适合小白学习的项目1832javaERP管理系统之成本管理Myeclipse开发mysql数据库servlet结构java编程计算机网页项目

一、源码特点 java 成本管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了serlvet设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发…

工作手机安全管理平台建设方案

第一章 项目背景 移动互联网的时代&#xff0c;各个行业在在推进移动办公和掌上办公&#xff0c;通过智能手机、平板电脑等进行线上办公&#xff0c;这样能提高了企业人员的办公效率&#xff0c;从而为客户提供更及时的服务。 在移动办公提高了工作人员办公效率的同时&#xf…

codegeex2-6b-int4 部署

codegeex2-6b-int4 模型文件 CodeGeeX2 仓库文件地址 CodeGeeX2 推理教程 conda create -n codegeex2 python3.10 -y conda activate codegeex2 pip install -r requirements.txt -i https://pypi.mirrors.u…

树的经典问题和方法

树&#xff08;Tree&#xff09;是计算机科学中一种非常重要的数据结构&#xff0c;广泛应用于各种算法和程序中。树的经典问题涉及树的遍历、查找、构建、删除等操作&#xff0c;其中遍历操作尤为关键&#xff0c;它是理解和解决其他树问题的基础。本文将探讨树的经典问题&…

CSS动画 学习

css动画是使元素从一个样式逐渐变化为另一个样式的效果&#xff0c;可以改变任意多的样式任意多的次数。常见的动画效果很多&#xff0c;比如平移、旋转、缩放等&#xff0c;css实现动画的方式有以下几种&#xff1a; transition&#xff1a;实现渐变动画transform&#xff1a…

郑州建筑设计资质对于企业社会责任的体现有哪些考量?

员工权益&#xff1a;是否为员工提供公平的薪酬、健康的工作环境、职业培训和发展机会。 企业是否遵守劳动法律法规&#xff0c;保障员工的合法权益&#xff0c;如工作时间和休假、职业安全和健康。 工程质量与安全&#xff1a;设计项目是否遵循高标准的工程质量和安全规范&a…

抓包工具 Wireshark 的下载、安装、使用、快捷键

目录 一、什么是Wireshark&#xff1f;二、Wireshark下载三、Wireshark安装四、Wireshark使用4.1 基本使用4.2 过滤设置1&#xff09;捕获过滤器2&#xff09;显示过滤器 4.3 过滤规则1&#xff09;捕获过滤器-规则语法2&#xff09;显示过滤器-规则语法 4.4 常用的显示过滤器规…