私は単純なWebクローラーでコーディングしていて、下部のコードでクロールしようとする大量のgf静的ファイルを生成しました。私には2つの問題/質問があります。私には考えがありません。
1.)シーケンス1..200をループすると、100ページがクロールされた直後にエラーがスローされます。
** exception error: no match of right hand side value {error,socket_closed_remotely}
in function erlang_test_01:fetch_page/1 (erlang_test_01.erl, line 11)
in call from lists:foreach/2 (lists.erl, line 1262)
2.)リクエストを並列化する方法(例:20 cincurrent reqs)
-module(erlang_test_01).
-export([start/0]).
-define(BASE_URL, "http://46.4.117.69/").
to_url(Id) ->
?BASE_URL ++ io_lib:format("~p", [Id]).
fetch_page(Id) ->
Uri = to_url(Id),
{ok, {{_, Status, _}, _, Data}} = httpc:request(get, {Uri, []}, [], [{body_format,binary}]),
Status,
Data.
start() ->
inets:start(),
lists:foreach(fun(I) -> fetch_page(I) end, lists:seq(1, 200)).