Używam FSharp.Data
HTMLProvider
wyodrębnić wiersze tabeli:Automatyczne wpisywanie kolumny w HtmlProvider <...> .Table.Row>
let [<Literal>] URL = "../DailyResultsType.html"
type RawResults = HtmlProvider<URL>
let results = RawResults.Load(URL).Tables
let dailySeq =
results.Table2.Rows
|> Seq.tail
zapętlenie nad rzędami (row
jest seq<HtmlProvider<...>.Table2.Row>
):
for row in dailySeq do
printfn "%A" row
Wyniki w:
(1, nan, nan, 2)
(1, nan, nan, 3)
~~~
Kolumny takie jak # 2 i # 3 są automatycznie wpisywane przez dostawcę jako decimal
i double
jako ciągi zawierające HTML, takie jak "12,00 $" lub "12 USD".
mogę dynamicznie zmienić rodzaj tych kolumn ciągu typ wrócił z
HtmlProvider<URL>
przy starcie (czyli z podwójnym ciąg) (ale chciałbym wolą typ numeryczny więc mogę Deedle wyników)Albo zastosować transformację ciąg wykonawcze do wartości w tych kolumnach, aby usunąć znaki nie-cyfrowe są więc ważne dziesiętny/podwójne/INT typy ...
Albo ja brakuje Pojęcie podstawowe (najprawdopodobniej jako Jestem F # noobie)
Czy możesz podzielić się mały plik HTML, który reprodukuje problem? –
czy zwraca nan na wszystkich wartościach? typeprovider zastąpi nan brakującymi wartościami. Możesz filtrować za pomocą 'Double.isNan'. Decimal i double są typami liczbowymi ... Możesz użyć 'string', aby go przekonwertować. Najlepszy byłby przykład html w istocie lub link. – s952163
@ s952163 Tak, wszystkie są 'nan' (500+ wierszy) * ponad 60 stron. Spróbuję stworzyć możliwą do opublikowania stronę próbną, która odtwarza problem ... Do tej pory łatwiej jest tylko wstępnie przeanalizować strony, a następnie przekazać je do "HTMLProvider" – SushiHangover