Я пытаюсь просканировать веб-страницу, получить все ссылки и добавить их в list<string>
, который будет возвращен в конце из функции.
Мой код:
let getUrls s : seq<string> =
let doc = new HtmlDocument() in
doc.LoadHtml s
doc.DocumentNode.SelectNodes "//a[@href]"
|> Seq.map(fun z -> (string z.Attributes.["href"]))
let crawler uri : seq<string> =
let rec crawl url =
let web = new WebClient()
let data = web.DownloadString url
getUrls data |> Seq.map crawl (* <-- ERROR HERE *)
crawl uri
Проблема в том, что в последней строке функции сканирования (getUrls seq.map ...) она просто выдает ошибку:
Несоответствие типов. Ожидается строка -> 'a, но задана строка
-> seq <'a> Результирующий тип будет бесконечным при объединении' 'a'
и 'seq <' a> '