1

我需要运行一个爬取网站的程序,并且我已经有了一个算法和部分代码。问题是,我不知道如何插入wget到我的源代码中。wget我们的学生助理暗示应该在(之前使用某种关键字或函数system,我认为或其他东西,但我不太确定)。

4

4 回答 4

3

何时使用system

1.)当您想将程序分发到不同的环境时,您通过系统调用的程序不可用

2.)在安全相关的环境中,您必须确保您调用的程序确实是您想要的程序

3.) 当你想做的事情可以用 10-20 行 C 代码轻松完成时

4.) 在性能关键型应用中

所以,你应该system几乎从不使用。

相反,要完成同样的事情,您可以使用 libcurl,正如 David 建议的那样(他的答案似乎已经消失了......),或者进行一些套接字编程(毕竟是 C)。

在现实世界的场景中,我可能只是默认使用不同的语言编写爬虫。Web 请求和复杂的字符串处理不一定是 C 的强项,而且绝对不是很方便使用:)

于 2013-03-11T12:07:28.027 回答
2

您可以使用system()命令。

在您的情况下(可能):

system("/bin/wget");

但是如果你真的想wget用参数调用,那么你应该使用execl()

execl("/bin/wget", "http://anyadress.com/file");
于 2013-03-11T11:56:30.217 回答
1

每当您想从 C 程序运行 shell 命令时,您都可以使用system("shell command"). 在您的情况下

system("wget");

注意 - wget 是一个可执行文件,其位置已添加到路径变量中,因此无需显式指定路径。

- 例子 -

#include <stdio.h>

#define BUFFLEN 2500

int main()
{

char web_address[BUFFLEN] = "www.google.com"; 
system("wget 'web_address' "); 
return 0;

}
于 2013-03-11T12:22:01.833 回答
0

system命令用于执行 shell 命令。人系统

于 2013-03-11T11:57:51.070 回答