如何使用 HtmlDocument 的 TryGetHtml

How to use HtmlDocument's TryGetHtml

假设我有一个函数

let GetDataFromWebsite (url:string) =
    let webpage = HtmlDocument.Load(url)
    let html = webpage.TryGetHtml
    html

(请注意,一旦我弄清楚如何使用 TryGetHtml 函数,这将成为一个更长的函数)

这告诉我它有一个 return string -> unit -> HtmlNode option。 returning 到底是什么?我该如何使用它?我试过了

match GetDataFromWebsite(@"...") with
| None -> "None"
| _ -> (fun a -> a.ToString())
|> printfn "%s"

但 visual studio 指出:

This expresion was expected to have type
  'unit -> FSharp.Data.HtmlNode option'
but here has type
  ''a option'

快到了:)

TryGetHtml 是一个函数,而不是 属性,您可能想要计算它而不是分配它:

let GetDataFromWebsite (url:string) =
    let webpage = HtmlDocument.Load(url)
    let html = webpage.TryGetHtml() // note braces
    html

现在 returns HtmlNode option 您可以在以下位置进行模式匹配:

match GetDataFromWebsite(@"...") with
| None -> "None"
| Some x -> x.ToString()
|> printfn "%s"

编译应该没有错误。