从Internet下载文件


21

介绍

是的,就是这么简单。从互联网上下载任何文件!

规则

您必须使用您语言的API。

您必须输出下载到STDOUT的文件,控制台,文件等。

输入的内容应为空,或您要下载的网址,但该网址必须计入字节数。

祝好运!

Answers:



13

Röda,29个字节

{saveResource"http://ai","a"}

这是一个匿名函数,它将创建a包含的HTML代码的文件http://ai


1
现在说服他们运行FTP服务器...
user253751'5

1
该网址如何有效?
Iulian Onofrei

1
@IulianOnofrei为什么无效?它具有协议,主机名,并且没有端口,路径或查询字符串,但是这些都是可选的。您是在问为什么AI是有效的主机名吗?
user253751

1
@IulianOnofrei ai 一个TLD。通常,顶级域名(TLD)不会解析指向托管网站的地址,但是显然,该地址可以。
user253751

4
对于那些像我一样无法解析URL的人,您可以直接使用IP地址来查看它:209.59.119.34
Engineer Toast

6

MATL,8个字节

'v.ht'Xi

提供给Xiurlread)的URL (http://如果尚未添加)。此外,的输出还urlread包含响应的内容,并且在程序退出时会隐式打印出来。

不幸的是,这对于在线编译器不起作用,因为在在线模式下不允许从任意URL加载数据,因此这是GIF。 enter image description here


5

重击 45 43字节

exec 3<>/dev/tcp/ai/80;echo GET />&3;cat<&3

在文件描述符3上打开带有ai站点的tcp套接字,发出get命令,并得到结果。也许可以打得更远。


1
您可以删除"周围的双引号GET /
Digital Trauma'5

惊人!即使不是最短的,这也非常好。
约翰·海伍德


4

PowerShell,7字节

由于我们都在使用www.ai...

irm ai.

用途Invoke-RestMethod-将结果打印到StdOut

备用答案,使用Invoke-WebRequest-OutFile参数保存到运行目录中名为“ a”的文件。

iwr ai. -OutF a

irmany file按照问题中的要求选择不会下载的nitpick ,因为如果服务器返回json或xml,则它将变成PSObject。而且irm ai.对我不起作用-它说姓名无法解析...我得到"$(irm g.cn)"了建议。
TessellatingHeckler,2017年

关于irm@John Hathwood的好点-这是否仍然适合挑战或需要更改?我对'any file'有点不清楚-它输出任何json或xml的'parsed'副本,所有其他文件返回为原始文件。
colsw

@TessellatingHeckler您使用的是哪个PS版本?你得到任何运行nslookup ai.nslookup www.ai 8.8.8.8
colsw

是的,它可以针对Google DNS进行查询,这是无法解决该问题的本地Windows DNS服务器。好。PSv4也是如此,但是不涉及,在cmd提示符下相同。
TessellatingHeckler,2017年

@TessellatingHeckler总是简单一些啊哈,我将等待挑战作者确认以上内容是否正确,但最有可能的15字节iwr答案将是正确的答案。
colsw

4

C#,96 93字节

async()=>Console.Write(await new System.Net.Http.HttpClient().GetStringAsync("http://3.ly"));

欢迎来到PPCG!
马丁·恩德

谢谢!我偶尔潜伏,但今天我需要一些乐趣c:
Ceshion


3

JS(ES6),38 36 31 29个字节

fetch`//ai`.then(x=>x.text())

取决于承诺共识,(41个字节)

fetch`//ai`.then(x=>x.text()).then(alert)

5
在我们就Promises达成共识之前,我会说您需要这样做alert
毛茸茸的

@Shaggy我认为社区同意这种方式可以,请参见您的答案和我的meta q的投票数。
程序员

1
会否以10票达成共识?(真正的问题是;要使其能够胜任,我们需要多少票?)
毛茸茸的

text返回一个承诺或不...then(x=>alert(x.text()))工作?
user253751

1
@Shaggy现在可以接受了。共识是+5和2:1的最高比例。
Rɪᴋᴇʀ

2

R,24个字节

readLines('http://g.co')

以通常的R格式将输出输出到控制台-字符串向量,每行站点一个元素。



2

Python 2,55 49 47字节

不短,但我真的认为我可以走得更远。

from urllib import*
urlopen('http://ai').read

2
我认为这from urllib import*\nurlopen('http://g.co').read是有效的提交内容,因为第二行是一个未命名的函数(就像一个未命名的lambda函数一样)
ovs

@ovs呵呵,谢谢!
21:48完全人类

您需要卸下尾括号。这将是一个片段而不是一个函数
ovs '17

IOError: [Errno socket error] [Errno 8] nodename nor servname provided, or not known
Iulian Onofrei'5

1
@IulianOnofrei您正在使用TIO吗?在TIO中运行的代码无法访问互联网。
完全人类

1

Vim Ex命令,14个字节

e http://3.ly/

打开URL作为新缓冲区。Netrw严重受URL格式限制。


1

nc -v v.ht 80 <文件-31字节

文件包含:

GET / HTTP/1.1\r\n
Host: v.ht\r\n
\r\n

我对自己应如何评分表示无知。该文件为31个字节,包含所需的URL,-v标志值决定是否获取所需的文件或错误响应。


nc ai 80<<<GET\ /为我工作的18B
凯文(Kevin)

我看到其他人在使用它,但是在我的机器上无法解决。我也许能够找到一种更宽松的服务器,但是这需要Host价值。我也许可以删除最后两个\r\n对联
JoshRagem,

奇怪,我的机器就没有解决aicurlwget,但确实为nc。试试ai.(尾点),或3.ly。这是一个错误页面,但这仍然是挑战的范围。
凯文(Kevin)

嗯,如果错误页面是可以接受的,那么我可以发送just的正文\n。当我回到家时,我会尝试更多的东西
JoshRagem '17

1

球拍,71字节

(require net/url)(port->string(get-pure-port(string->url"http://ai")))

在这里看不到太多的球拍答案。
戴维·康拉德


0

Vim,2 + 12 = 14字节

gf

期望URL http://3.ly/作为输入。gf在光标下打开当前文件。感谢netrw,它可以很好地用于URL。我在尝试记住在浏览器中打开URL的命令时发现了它(找到了,它是gx)。


0

PowerShell,62个字节

PowerShell 5

-join[char[]][net.webclient]::new().downloaddata('http://ai.')

66个字节(用于旧版本的PowerShell)

-join[char[]](new-object net.webclient).downloaddata('http://ai.')

0

Python +请求,55 53 50字节

from requests import*
print(get('http://ai').text)

通过切换URL -2个字节-3个字节,由于ovs


通常不禁止使用缩短的URL吗?
毛茸茸的

3
确实,这是Python +请求,因为(不幸地)请求不在标准库中。
L3viathan '17

from request import*是短2个字节
ovs'5

@Shaggy Um ... Welp ...几乎所有其他答案都使用了一条裂痕。但是我更改了URL,使其更短,因为显然http://ai是有效的完整
URL。– HyperNeutrino

0

AHK,31字节

URLDownloadToFile,http://g.co,g

有一个内置的,所以不是很令人兴奋。不过,尝试时尚,该功能相当长。


0

Bash + wget,7个字节

wget ai

http:// ai下载页面


我收到“解析ai ...失败:提供的节点名或服务名,或者未知。” 尽管这样wget ai.(带有尾点)有效。
凯文(Kevin)

@Kevin在我的系统上工作。听起来好像您使用的是FreeBSD或macOS。
dkudriavtsev'5

是的,macOS Sierra
Kevin

@Kevin我在Linux上。尝试虚拟机。
dkudriavtsev'5

奇怪的是,它不会在MacOS上工作,因为它应该是相同的代码(模某些特定操作系统的编译器标志,这是我不希望改变这种)和nslookupdig以及nc所有找到它的罚款。哦,好吧,这不是我见过的第一个区别,也不值得为其安装虚拟机。
凯文(Kevin)


0

Perl,41个字节

$ perl -MLWP::UserAgent -e 'getstore($url)'

嗨,欢迎来到Programming Puzzle&Code-Golf,很高兴认识新的Perl高尔夫球手。不允许您将url放在变量内(抱歉,找不到有关该部分的参考链接)。此外,您不必perl -e''在字节数内进行计数。关于如何计算flags&co,请参阅这篇文章。希望能再见!
达达

0

Pyth,4 + 11 = 15个字节

jk'z

http://v.ht输入URL 。将URL字符串作为输入,下载文件并打印其内容。

说明:

jk'z
   z    Get the input string (URL)
  '     Download the file from the URL, return a list of lines
jk      Join the list on k which is the empty string

请注意,s由于字节类型问题,我们无法使用该函数来串联列表。

稍微作弊,2 + 11 = 13个字节(它显示文件中的行列表,而不是整个文件的单个字符串):

'z

您将需要在计算机上安装Pyth进行测试(在线解释器不会执行不安全的操作)。


欢迎来到PPCG!很好,但是“ URL必须计入字节数”。
乔纳森·艾伦

0

C#,76个字节

Console.WriteLine(new System.Net.WebClient().DownloadString("http://3.ly"));

0

MATLAB,20个字节

urlread('http://ai')

这里没什么好看的...


0

Kdb +,34岁 15字节

KDB +> = 3.4

 q).Q.hg`http://ai

这里

KDB + <3.4

q)`:http://ai"GET / HTTP/1.0",4#"\n"
"HTTP/1.1 200 OK\r\nDate: Thu, 11 May 2017 21:45:01 GMT\r\nServer: Apache/1.3..
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.