如何编译和启动erlang应用程序?
编译后如何启动follow git应用程序如何编译和启动erlang应用程序?,erlang,Erlang,编译后如何启动follow git应用程序 my steps are: 1. clone git repository "git://github.com/michaelmelanson/spider.git" 2. cd spider 3 erl Erlang R14B04 (erts-5.8.5) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false] Eshell V5.8.5 (abort with ^G)
my steps are:
1. clone git repository "git://github.com/michaelmelanson/spider.git"
2. cd spider
3 erl
Erlang R14B04 (erts-5.8.5) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
Eshell V5.8.5 (abort with ^G)
1> make:all().
up_to_date
2>
最后,如何显示应用程序相关的模块
提前谢谢
感谢您加入Michael,标准任务请求“task\u master:insert\u task(“”)。工作正常。 但如果我试图限制递归请求,我会收到一条错误消息:
* 1: record task undefined
不幸的是,我下面的建议不起作用
rd(task, {url = "", depth = ""}).
Task = #task{url="http://www.id.uzh.ch", depth=2}.
task_master:insert_task(Task).
下一个错误消息是:
=ERROR REPORT==== 21-Jun-2013::09:47:42 ===
** Generic server <0.52.0> terminating
** Last message in was {'$gen_cast',
{task,
{task,{task,"http://www.id.uzh.ch",2},[],-1}}}
** When Server state == {state}
** Reason for termination ==
** {{badmatch,{error,parse_url}},
[{fetcher,process_task,1},
{fetcher,handle_cast,2},
{gen_server,handle_msg,5},
{proc_lib,init_p_do_apply,3}]}`
=错误报告===2013年6月21日::09:47:42===
**通用服务器终止
**最后一条消息是{'gen_cast',
{任务,
{任务,{任务,“http://www.id.uzh.ch",2},[],-1}}}
**当服务器状态=={state}
**终止原因==
**{{badmatch,{error,parse_url}},
[{fetcher,process_task,1},
{fetcher,handle_cast,2},
{gen_server,handle_msg,5},
{proc_lib,init_p_do_apply,3}]}`
有什么想法吗?Spider是一个erlang应用程序,因此可以使用
应用程序:开始/1
来运行它:
cd卡盘
erl-pa息税前利润
所以erl找到了蜘蛛光束文件1>应用程序:启动(iNet)。
2>应用程序:启动(spider)。
你可以阅读更多关于 我是该代码的原始作者。对不起,我根本没有记录它。。。这只是我5年前的一个小项目。这对我来说是一段遥远的记忆,但我知道的是 关于如何启动应用程序和插入任务,johlo是绝对正确的。您应该能够使用
application:start(spider)
启动它,然后使用task\u master:insert\u task/1
方法插入新作业。它接受URL字符串或任务
记录。如果这对你不起作用,请告诉我
应用程序运行后,执行类似于task\u master:insert\u task(“http://someurl.com/page.html“”
将插入新任务以获取和处理网页。通过查看此处,您可以了解“过程”的确切含义:
基本上,它将获取页面、解析HTML、提取任何链接并将结果发送回任务母版
。然后,task\u master
将插入新任务来处理每个链接,递归地对所有连接的页面进行爬网。目前它对结果没有任何影响,但这将是一个放置代码的好地方:
请注意:默认情况下,它对爬行深度没有限制。如果任由它自己的设备运行,它将递归地抓取整个网络。如果您计划在任何具有传出链接的站点上使用此功能,则应通过创建Task=#Task{url=”来限制爬网深度http://someurl.com/“,深度=5}代码>然后任务主控:插入任务(任务)
希望这会有所帮助。您不必启动Erlang shell来编译应用程序的源代码。你可以这么做
erlc src/*.erl -o ebin/
在应用程序的文件夹中
另外,我建议您尝试钢筋
:
这是一个可以轻松编译和测试Erlang应用程序的实用工具。首先感谢johlo。我的下一个问题是如何为应用程序提供一个URL进行爬网?或者没有任何选择activity@ovntatar抱歉,不熟悉此代码,但听起来像是task\u master:insert\u task(Url)
是一个很好的候选者。