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
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
#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
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
使用 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
将跳过非内容元素 script
和 style
,将所有元素名称转换为小写,并忽略所有 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()
伪属性选择符:根据XPathtext()
位置路径选择节点文本内容。可以用作替代属性名称选择符,如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"是空字符串,则选择符不表示任何东西。
赞助商
产品 | 版本 兼容的和额外的计算目标框架版本。 |
---|---|
.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. |
-
.NETStandard 2.0
- Microsoft.Xml.SgmlReader (>= 1.8.30)
- Superpower (>= 3.0.0)
NuGet 包 (3)
显示依赖 Devlooped.Web 的前 3 个 NuGet 包
包 | 下载 |
---|---|
Devlooped.Xml.Css 被 Devlooped.Web 替代 |
|
Devlooped.Html 被 Devlooped.Web 替代 |
|
Devlooped.Epub 轻量级只读 API,用于处理 EPUB 文档。 |
GitHub 仓库
该包没有用于任何流行的 GitHub 仓库。