Devlooped.Web 1.2.2

前缀已保留
dotnet add package Devlooped.Web --version 1.2.2                
NuGet\Install-Package Devlooped.Web -Version 1.2.2                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Devlooped.Web" Version="1.2.2" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add Devlooped.Web --version 1.2.2                
#r "nuget: Devlooped.Web, 1.2.2"                
#r 指令可以用于 F# Interactive 和多语言笔记本中。将其复制到交互式工具或脚本的源代码中,以引用包。
// Install Devlooped.Web as a Cake Addin
#addin nuget:?package=Devlooped.Web&version=1.2.2

// Install Devlooped.Web as a Cake Tool
#tool nuget:?package=Devlooped.Web&version=1.2.2                

使用 HTML 作为 XML 读取,并使用 XLinq(或 HtmlAgilityPack 的替代品)通过 CSS 查询它。

无需学习全新的对象模型来处理页面。这使得它成为使用.NET最新、最强大的功能进行网页抓取的最大生产力和最精简的库。

用法

using System.Xml.Linq;
using Devlooped.Web;

XDocument page = HtmlDocument.Load("page.html")
IEnumerable<XElement> elements = page.CssSelectElements("div.menuitem");

XElement title = page.CssSelectElement("html head meta[name=title]");

默认情况下,HtmlDocument.Load 将跳过非内容元素 scriptstyle,将所有元素名称转换为小写,并忽略所有 XML 命名空间(例如,在加载 XHTML 时很有用),以便于查询。可以使用接收 HtmlReaderSettings 的重载来配置这些选项以及细粒度的空白处理。

底层解析由微软的 SgmlReader 库执行。

此外,以下扩展方法使得在想要使用 CSS 或 XPath 查询而不必处理 XML 命名空间时,更容易处理 XML 文档

using System.Xml;
using System.Xml.Linq;
using Devlooped.Web;

var doc = XDocument.Load("doc.xml")
// Will remove all xmlns declarations, and allow querying elements 
// as if none had namespaces, returns the root element
XElement nons = doc.RemoveNamespaces();

// Alternatively, you can also ignore at the XmlReader level
using var reader = XmlReader.Create("doc.xml").IgnoreNamespaces();
doc = XDocument.Load(reader);

// Finally, you can also skip elements at the reader level
using var reader = XmlReader.Create("doc.xml").SkipElements("foo", "bar");
doc = XDocument.Load(reader);

CSS

目前支持以下 CSS 选择器功能

以及所有组合符

非CSS特性

  • text()伪属性选择符:根据XPath text()位置路径选择节点文本内容。可以用作替代属性名称选择符,如div[text()=foo]。所有属性值选择符也支持
    • [text()=val]:表示文本内容恰好为"val"的元素。
    • [text()~=val]:表示文本内容为一系列以空格分隔的单词,其中一个恰好是"val"。如果"val"包含空格,它将永远不表示任何东西(因为单词是通过空格分隔的)。如果"val"是空字符串,它也永远不会表示任何东西。
    • [text()|=val]:表示文本内容恰好是"val"或以"val"开头直接跟一个连字符(U+002D)的元素。
    • [text()^=val]:表示文本内容以"val"为前缀的元素。如果"val"是空字符串,则选择符不表示任何东西。
    • [text()$=val]:表示文本内容以"val"为后缀的元素。如果"val"是空字符串,则选择符不表示任何东西。
    • [text()*=val]:表示文本内容包含至少一个"val"子串的元素。如果"val"是空字符串,则选择符不表示任何东西。

赞助商

Clarius Org Kirill Osenkov MFB Technologies, Inc. Stephen Shaw Torutek DRIVE.NET, Inc. Ashley Medway Keith Pickford Thomas Bolon Kori Francis Toni Wenzel Giorgi Dalakishvili Mike James Uno Platform Dan Siegel Reuben Swartz Jacob Foshee alternate text is missing from this package README image Eric Johnson Ix Technologies B.V. David JENNI Jonathan Oleg Kyrylchuk Charley Wu Jakob Tikjøb Andersen Seann Alexander Tino Hager Mark Seemann Angelo Belchior Ken Bonny Simon Cropp agileworks-eu sorahex Zheyu Shen Vezel Michael Staib ChilliCream 4OTC

赞助此项目  

了解更多关于GitHub赞助的信息

产品 兼容的和额外的计算目标框架版本。
.NET net5.0 已计算。  net5.0-windows 已计算。  net6.0 已计算。  net6.0-android 已计算。  net6.0-ios 已计算。  net6.0-maccatalyst 已计算。  net6.0-macos 已计算。  net6.0-tvos 已计算。  net6.0-windows 已计算。  net7.0 已计算。  net7.0-android 已计算。  net7.0-ios 已计算。  net7.0-maccatalyst 已计算。  net7.0-macos 已计算。  net7.0-tvos 已计算。  net7.0-windows 已计算。  net8.0 已计算。  net8.0-android 已计算。  net8.0-browser 已计算。  net8.0-ios 已计算。  net8.0-maccatalyst 已计算。  net8.0-macos 已计算。  net8.0-tvos 已计算。  net8.0-windows 已计算。 
.NET Core netcoreapp2.0 已计算。  netcoreapp2.1 已计算。  netcoreapp2.2 已计算。  netcoreapp3.0 已计算。  netcoreapp3.1 已计算。 
.NET Standard netstandard2.0 兼容。  netstandard2.1 已计算。 
.NET Framework net461 已计算。  net462 已计算。  net463 已计算。  net47 已计算。  net471 已计算。  net472 已计算。  net48 已计算。  net481 已计算。 
MonoAndroid monoandroid was computed.
MonoMac monomac was computed.
MonoTouch monotouch was computed.
Tizen tizen40 was computed. tizen60 was computed.
Xamarin.iOS xamarinios was computed.
Xamarin.Mac xamarinmac was computed.
Xamarin.TVOS xamarintvos was computed.
Xamarin.WatchOS xamarinwatchos was computed.
兼容目标框架
包含目标框架(包含在包中)
了解更多关于 目标框架 以及 .NET Standard 的信息。

NuGet 包 (3)

显示依赖 Devlooped.Web 的前 3 个 NuGet 包

下载
Devlooped.Xml.Css

被 Devlooped.Web 替代

Devlooped.Html

被 Devlooped.Web 替代

Devlooped.Epub

轻量级只读 API,用于处理 EPUB 文档。

GitHub 仓库

该包没有用于任何流行的 GitHub 仓库。

版本 下载 上次更新
1.2.2 1,427 5/30/2024
1.2.0 1,725 8/11/2023
1.1.0 1,317 9/4/2022
1.0.1 748 8/8/2022
1.0.0 1,023 7/15/2022