F#およびFSharp.Dataライブラリを使用してWebページから在庫配当データを掻き取ろうとしています。ページの例はhttp://www.nasdaq.com/symbol/ibm/dividend-historyにあります。 F#によるWebスクレイピング在庫配当データ
がWebページを要求するには、私のコードは、一例として、単純なコンソールアプリケーションとして設定され、次のとおりです。実行open FSharp.Data
[<EntryPoint>]
let main argv =
let url = "http://www.nasdaq.com/symbol/ibm/dividend-history"
let result = Http.RequestString(url)
System.Console.ReadLine() |> ignore
0 // return an integer exit code
、RequestStringメソッドエラーが発生した:
「未処理タイプ 'System.ArgumentOutOfRangeException'の例外がFSharp.Core.dllで発生しました
追加情報:長さはゼロより小さくすることはできません。
"従来の"スクレイピングアプローチが機能しないようにページがフォーマットされているようです。任意のアイデアや思考をいただければ幸いです。
私はこれを試してみたところ、次のように見つけました:[email protected](Int32 i、String cookiePart)... FSharp.Data \ src \ Net \ Http.fs:line 675実際のクラッシュがどこにあったのか。 'String.Substring'を呼び出して、最初の" = "記号までの長さを取得しようとしています。残念ながら、それはString.IndexOfを使って定義され、 "="記号がないときは-1を返します。関連するソースコード:https://github.com/fsharp/FSharp.Data/blob/master/src/Net/Http.fs#L674 and comment: '.NETはいくつかのクッキーの解析に問題があります。 http:// stackoverflow.com/a/22098131/165633'を参照してください。 – Ringil