インターネットからファイルをダウンロードする


21

前書き

はい、それはそれと同じくらい簡単です。インターネットから任意のファイルをダウンロードしてください!

ルール

言語のAPIを使用する必要があります。

STDOUTにダウンロードしたファイル、コンソール、ファイルなどを出力する必要があります。

入力は空、またはダウンロードするURLである必要がありますが、URLはバイトカウントまでカウントする必要があります。

がんばろう!

回答:


14

Bash、21 17 11 9 7バイト

curl ai

1
curl既に存在するツールではありませんか?:)
アベルトム

1
@AbelTomこれは「あなたの言語のAPI」である
programmer5000

7
curl aihttp://は必要ありません
opatut

1
@SIGSEGV:stdoutに出力されないため。
モニカとの明るさのレース

2
これは私にはうまくいきませんか?どうaiなるの?curl: (6) Could not resolve host: aiここに与えます。
Rɪᴋᴇʀ

13

ローダ、29バイト

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

これは、aのHTMLコードを含むファイルを作成する匿名関数ですhttp://ai


1
FTPサーバーを実行するように説得するために
...-user253751

1
そのURLはどのように有効ですか?
ユリアンオノフレイ

1
@IulianOnofreiなぜそれは有効ではないのですか?プロトコル、ホスト名があり、ポート、パス、クエリ文字列はありませんが、これらはすべてオプションです。aiが有効なホスト名である理由を尋ねていますか?
user253751

1
@IulianOnofrei ai TLDです。通常、TLDはWebサイトをホストするアドレスに解決しませんが、これは明らかに解決します。
user253751

4
私のような- -人のためにURLが解決しない、あなたはおそらく、直接IPアドレスを使用して、それを表示することができます。209.59.119.34
エンジニアトースト

6

MATL、8バイト

'v.ht'Xi

Xiurlread)に提供されたURL http://は、まだ追加されていない場合は先頭に追加されます。さらに、の出力にurlreadは応答の内容が含まれており、これはプログラムの終了時に暗黙的に出力されます。

残念ながら、オンラインモードでは任意のURLからのデータの読み込みが許可されていないため、これはオンラインコンパイラでは機能しません。ここにGIFがあります。 ここに画像の説明を入力してください


5

バッシュ、 45 43バイト

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

ファイル記述子3のaiサイトでtcpソケットを開き、getを発行し、結果をcatsします。おそらくさらにゴルフすることができます。


1
"前後の二重引用符を削除できますGET /
デジタル外傷

すごい!これは、最短ではない場合でも非常に優れています。
ジョンハスウッド

4

Mathematica 18バイト

URLDownload@"v.ht"

私はFetchURL働くと思う
-ngenisis

URLFetch11より前のMathematicaバージョンが必要だと思うと思います。
Ian Miller

URLFetchのは、まだ現在のバージョンでは動作しますが、いくつかの点で、おそらく完全に廃止予定、およびユーティリティでFetchURLなるように使用がやったことになるURLTools reference.wolfram.com/language/ref/URLFetch.htmlは
ケリーLowder

4

PowerShell、7バイト

私たちは皆使用しているのでwww.ai...

irm ai.

用途Invoke-RestMethod-標準出力に結果を出力します

別の答えは、「」実行ディレクトリ、使用中という名前のファイルに保存されますInvoke-WebRequest-OutFilePARAM。

iwr ai. -OutF a

サーバーがjsonまたはxmlを返すと、代わりにPSObjectに変換されるため、質問で要求されているように、irmダウンロードしないnitpickをany file実行します。そしてirm ai.、私にとってはうまくいきません-名前を解決できないと言います...私"$(irm g.cn)"は提案として得ます。
TessellatingHeckler

良い点irm-@John Hathwood-これはまだ課題に合っていますか、変更する必要がありますか?私は「任意のファイル」について少し不明瞭です-それは任意のjsonまたはxmlの「解析された」コピーを出力し、他のすべてのファイルは生で返されます。
colsw

@TessellatingHeckler使用しているPSのバージョンは何ですか?何か実行していますnslookup ai.nslookup www.ai 8.8.8.8
-colsw

はい、Google DNSに対してクエリを実行します。これは、それを解決できないローカルWindows DNSサーバーです。OK。PSv4も同様ですが、それは関係ありません。cmdプロンプトでも同じです。
-TessellatingHeckler

@TessellatingHecklerは常に単純なものです。チャレンジ作成者が上記の内容に問題がないかどうかを確認するのを待ちますが、15バイトのiwr答えはおそらく正しいものです。
colsw



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コミュニティは、この方法で問題ないことに同意すると思います。あなたの答えと私のメタqの投票数を見てください。
Programmer5000

1
コンセンサスは10票ですか?(それは本物の質問です。適応可能とみなすには何票必要ですか?)
シャギー

text約束を返すか、機能します...then(x=>alert(x.text()))か?
user253751

1
@Shaggyそれは今許容されます。コンセンサスは、ダウンボットまでの+5および2:1の比率です。
Rɪᴋᴇʀ

2

R、24バイト

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

出力を通常のR形式でコンソールに出力します-文字列のベクトル、サイトの行ごとに1つの要素。



2

Pythonの2、55の 49 47バイト

短くはありませんが、私はさらに先に進むことができると本当に思いました。

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

2
私が思うにfrom urllib import*\nurlopen('http://g.co').read二行目は(ちょうど無名のラムダ関数など)の無名関数であるとして有効な服従である
OVS

@ovsええ、ありがとう!
完全に人間の

末尾のブラケットを削除する必要があります。そうでなければ関数ではなくスニペットになります
-ovs

IOError: [Errno socket error] [Errno 8] nodename nor servname provided, or not known
ユリアンオノフレイ

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のために働く
ケビン

他の人がそれを使用しているのを見ましたが、私のマシンでは解決しません。より寛容なサーバーを見つけることができるかもしれませんが、このサーバーにはHost価値が必要です。おそらく最後の2つの\r\nカプレットを削除できます
-JoshRagem

奇数は、私のマシンは解決しないだろうaiためcurlか、wgetしかし、のために行いますnc。try ai.(末尾のドット)、または3.ly。これはエラーページですが、それでもチャレンジの範囲内です。
ケビン

うーん、エラーページが許容できる場合は、本文だけを送信できます\n。家に帰ったらもう少し試してみます
-JoshRagem

1

ラケット、71バイト

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

この辺りであまりにも多くのラケットの答えを見ないでください。
デビッドコンラッド


0

Vim、2 + 12 = 14バイト

gf

http://3.ly/入力としてURL が必要です。gf現在のファイルをカーソルの下で開きます。netrwのおかげで、これはURLでうまく機能します。ブラウザでURLを開くコマンドを思い出そうとしていたときに見つけました(見つけました、それはgx)。


0

PowerShell、62バイト

PowerShell 5

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

PowerShellのより古いバージョンでは66バイト

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

0

Python +リクエスト、55 53 50バイト

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

URLの切り替えにより-2バイトovsにより-3バイト


通常、短縮URLは許可されていませんか?
シャギー

3
リクエストは(悲しいことに)標準ライブラリにないため、実際にはPython +リクエストです。
-L3viathan

from request import*2バイト短い
-ovs

@Shaggy Um ... Welp ...ほぼすべての他の回答は1つのリッピングを使用しました。ただし、URLがhttp://ai有効な完全なURLであるため、URLをさらに短くするように変更しました
。– HyperNeutrino

0

AHK、31バイト

URLDownloadToFile,http://g.co,g

ビルトインがありますので、それほどエキサイティングではありません。ただし、機能はかなり長いです。


0

Bash + wget、7バイト

wget ai

http:// aiのページをダウンロードします


「ai ...の解決に失敗しました:nodenameまたはservnameが提供されたか、不明です」というメッセージが表示されます。ただし、これでwget ai.(末尾のドットで)動作します。
ケビン

@Kevinは私のシステムで動作します。FreeBSDまたはmacOSを使用しているように聞こえます。
-dkudriavtsev

はい、macOS Sierra
ケビン

@Kevin私はLinuxを使っています。VMを試してください。
-dkudriavtsev

奇妙それは、MacOSで動作しないでしょう、それは同じコードでなければならないので(私はこれを変更するには期待していないいくつかのOS固有のコンパイラフラグ、モジュロ)ことnslookupdigおよびncすべての罰金それを見つけるの。まあ、私が見た最初の違いではなく、VMをインストールする価値はありません。
ケビン

0

ルビー、27 + 10 = 37バイト

puts open('http://ai').read

-ropen-uriフラグ用に+10バイト(open-uriライブラリが必要)


0

Perl、41バイト

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

こんにちは、Programming Puzzle&Code-golfにようこそ。新しいPerlゴルファーが登場します。URLが変数内にあると想定することはできません(その部分に関する参照リンクが見つかりません、申し訳ありません)。さらに、perl -e''バイトカウント内でカウントする必要はありません。フラグとCoのカウント方法については、この投稿を参照してください。よろしくお願いします!
ダダ

0

Pyth、4 + 11 = 15バイト

jk'z

URLあり http://v.ht入力としてします。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

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..
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.