http://i.imgur.com/에서 임의의 이미지 찾기


11

이미지 로고

Imgur는 무료 이미지 호스팅 서비스입니다. 많은 사람들이 그것을 사용합니다. 다음은 imgur 링크의 예입니다 : http://i.imgur.com/T55muMD.png . 무작위 (유효한) 이미지 링크를 지속적으로 출력하는 프로그램을 작성하십시오. 예를 들어, 다음은 내 프로그램의 일부 샘플 출력입니다 (자신을 알아 내야 할 트릭이 포함되어 있기 때문에 표시되지 않음).

http://i.imgur.com/uFmsA.png
http://i.imgur.com/FlpHS.png
http://i.imgur.com/eAbsZ.png
http://i.imgur.com/lEUsq.png
http://i.imgur.com/RuveH.png
http://i.imgur.com/BoEwB.png
http://i.imgur.com/HVFGQ.png
http://i.imgur.com/PZpMg.png
http://i.imgur.com/DezCY.png

도움되는 힌트:

  • imgur가 새로워 졌을 때 5 글자 링크가 사용되었습니다.
  • imgur가 새로운 것이었을 때는 숫자가 사용되지 않았습니다.
  • 이 기능을 유리하게 사용할 수 있습니다. 글자 만있는 5 글자 링크 이미지 만 찾으십시오. 그게 내 프로그램입니다.
  • 또한 모든 이미지는로 저장됩니다 .png.

요구 사항 :

  • 지속적으로 임의의 이미지 링크를 출력
  • 반복없이 50을 출력하면 충분히 "무작위"로 간주되는 링크
  • 방문시 링크는 이미지 여야합니다
  • 링크는로 시작 http://i.imgur.com/하고 끝나야합니다.png
  • 점수는 문자의 양입니다

나는 452 자로 Java (골프에 대한 TERRIBLE)로 그것을했습니다. 여기에 표시되지 않은 트릭이 포함되어 있으므로 여기에 표시하지 마십시오!)


5
잠깐, 출력에 반복이 포함되어서는 안되는 무작위 정의입니까?
Mr Lister

7
경고 : 음란물 이미지가 imgur에있을 수 있습니다! = : o
Mr.Wizard

5 글자 이미지가 모두 유효합니까?
l4m2

답변:


3

PHP 5.4, 76 자

URL은 대문자 만 사용하여 순차적으로 생성되며 사양의 문자를 충족하면서 반복되지 않습니다.

<?for($t=@ZZZZ;$t++;)file($u="http://i.imgur.com/$t.png")[0]>@F&&print"$u
";

4

펄 (93 + 4 = 97)

imgur 자신의 사용 무작위로 얻을 메커니즘을 자신의 대부분의 시간 URL을 PNG로하지 않는 이미지 URL :

$ perl -Mojo -E 'say+g("http://imgur.com/gallery/random")->dom->at("[rel=image_src]")->attrs("href")for+1..50'
http://i.imgur.com/7cNoA.jpg
...

(이 작업에는 Mojolicious가 필요합니다.)


1
훌륭하고 공평하지 않습니다!
elssar

@elssar 적어도 두 번째 요점입니다. ;)
memowe

오, 그건 영리
해요

4

HTML (152)

<img src=x
onload=console.log(s);g()
onerror=g=function(){s='http://i.imgur.com/'+Math.random().toString(36).substr(2,6)+'.png';event.target.src=s};g()>

이것은를 사용하여 JavaScript 콘솔에서 찾은 모든 이미지를 기록합니다 console.log(). 모든 테스트 된 브라우저 (Firefox, Chrome, IE9, Safari 및 Opera)에서 작동합니다.

재미있는 부분은 모든 종류의 재미있는 이미지가 눈을 깜박이기 위해 깜박이는 것입니다 :).

시도 해봐! (jsFiddle은 이것을 더 완전한 HTML 페이지로 감싸지 만 브라우저는 단일 요소를 허용합니다.)

받는 소품 놀라운 임의의 문자열 방법 에 의해 doubletap !

JavaScript 콘솔과 기록 된 이미지는 어디에서 볼 수 있습니까?

  • Firefox : Control-Shift-K (Mac의 경우 Command-Option-K)를 누릅니다. Net, CSS 및 JS 버튼을 선택 해제하고 로깅 버튼 만 선택하십시오.
  • Opera : Control + Shift + i를 누르고 콘솔 탭을 선택하십시오.
  • Chrome : Control + Shift + i를 누르고 콘솔 탭을 선택하십시오. 맨 아래에서 로그를 선택하십시오.
  • Safari : 기본적으로 Chrome과 비슷하지만 먼저 Safari의 개발자 도구가 활성화되어 있는지 확인하십시오 . 그런 다음 Control + Shift + i 대신 Control + Alt + C (Windows에서는 Mac에서는 확실하지 않음)를 누르고 콘솔 탭을 선택하십시오. 맨 아래에서 로그를 선택하십시오.
  • IE : F12를 누르고 콘솔 탭을 선택하십시오.

요구 사항을 충족하지 않습니다. 팝업되는 많은 이미지가 유효하지 않습니다.
Doorknob

"유효하지 않음"은 무슨 뜻입니까? 콘솔에는 성공적으로 표시 될 수있는 이미지 만 기록됩니다 (업데이트 된 설명 참조).
Thomas W.

오 알았어 지금 다시 시도 중입니다. 편집 : Chrome에서 잘못된 이미지도 로깅하는 것 같습니다.
Doorknob

Chrome은 기본적으로 오류 메시지와 로그를 혼합합니다. 콘솔 탭 하단에는 모두, 오류, 경고, 로그가 있습니다. 이미지를로드 할 수없는 경우 이미지 URL에 404 오류가 표시됩니다. 로그를 선택하면 내 코드에서 생성 된 출력 만 표시됩니다.
Thomas W.

3
기록 된 많은 이미지 URL 은 "요청중인 이미지가 없거나 더 이상 사용할 수 없습니다"라는 표준 이미지 오류 이미지 만 반환합니다 . 반환 된 문서 이미지 이기 때문에 주어진 규칙에 따라 여전히 유효한 결과라고 주장 할 수 있다고 생각 합니다.
Ilmari Karonen

3

펄 (87)

perl -pe's/\W//g;$_="http://i.imgur.com/$_.png\n";$_=""if`curl $_`=~/^</'</dev/urandom

대문자, 소문자 및 숫자를 0에서 최대 문자까지 언젠가는 이미지 찾기


Hehehe, urandom
beary605

3

수학 , 108

공백이 추가되었습니다.

While[True,
 Import@# /. _Image :> Print@# &[
  "http://i.imgur.com/" <> "a" ~CharacterRange~ "z" ~RandomChoice~ 5 <> ".png"
 ]
]

2

파이썬 ( 174 (158) 156)

파이썬에서 더 짧은 모듈 이름을 원합니다. 또한 임의의 문자를 얻는 쉬운 방법입니다. :)

import urllib,random
while 1:a='http://i.imgur.com/%s.png'%''.join(chr(random.randint(65,90))for i in'AAAAA');print('File'not in urllib.urlopen(a).read())*a

설명:

문자열의 모듈러스 연산자는 서식 명령이며,이 경우 문자열의 '% s'를 5 개의 임의의 대문자로 바꿉니다
a. 웹 사이트 이름 (유형 str)
('File'not in urllib.urlopen(a).read())은 'File'( 'File not found!'에서 되어 있지 URL의하여 HTML에서 발견. (type bool)
bool* str= strif bool= True이므로 aHTML 파일에 'File'이없는 경우 에만 출력 됩니다.


사양의 어떤 부분에서 대문자와 소문자를 모두 사용해야한다고 말합니까? chr(random.randint(65,90))
피터 테일러

나는 그것을 실행했고 아무것도 출력하지 않았다. 'File'그래도 좋은 트릭 :)
Doorknob

@PeterTaylor : :) 대문자로만 imgur에 링크가 있다는 것을 몰랐지만 충분히 분명 할 것입니다. 감사!
beary605

@Doorknob : 링크가 없으면 개행을 출력 한 다음 링크를 제공합니다.
beary605

1
당신은 같은 것을 사용하여 떨어져 몇 가지 문자를 면도 할 수 있도록 길이 5의 모든 순서는, 당신의 5 개 임의의 문자에 대해 작동 'XXXXX'보다는 range(5). 또한 공백과 공백 사이에 공백이 필요하지 않다는 장점이 있습니다 in.
Strigoides

2

독특한 파이썬 접근. 361 355 334 332 322 314 문자-약간 난독 화되어 어렵지 않습니다. 고양이 사진의 밀도가 비정상적으로 높아질 수 있으므로 경고를 받았습니다.

import json as j,urllib as o,time as t;a=0
while 1:
 q="i.imgur";y,p=('data','children');r="njj";h="erqqvg.pbz/";u="uggc://"+h+"e/"+r;c=j.loads(o.urlopen(u.decode('rot13')+".json?sorted=new&after=%s"%a).read())[y]
 for s in c[p]:
  f=s[y];w=f['url'].strip('?1')
  if w.find(q)!=-1:print w
 a=c['after'];t.sleep(3)

산출:

http://i.imgur.com/u3vyMCW.jpg
http://i.imgur.com/zF7rPAf.jpg
http://i.imgur.com/aDTl7OM.jpg
http://i.imgur.com/KONVsYw.jpg
http://i.imgur.com/RVM2pYi.png
http://i.imgur.com/tkMhc9T.jpg
http://i.imgur.com/KxUrZkp.gif
http://i.imgur.com/mnDTovy.jpg
http://i.imgur.com/WpuXbHb.jpg
http://i.imgur.com/qZA3mCR.jpg
http://i.imgur.com/AxMS1Fs.png
http://i.imgur.com/TLSd571.jpg
http://i.imgur.com/VfMhLIQ.jpg
http://i.imgur.com/Wu32582.jpg
http://i.imgur.com/hrmQL2F.jpg
http://i.imgur.com/Clg8N.jpg
http://i.imgur.com/7Wsko.jpg
http://i.imgur.com/Rhb0UNx.jpg
http://i.imgur.com/LAXAf45.gif
http://i.imgur.com/jhOLJ9B.jpg
http://i.imgur.com/FQ9NeAl.jpg
http://i.imgur.com/oqzf6tE.jpg
http://i.imgur.com/rnpXs1A.jpg
http://i.imgur.com/DfUIz6k.jpg
http://i.imgur.com/orfGA5I.jpg
http://i.imgur.com/wBT7JNt.jpg
http://i.imgur.com/RycK1m2.jpg
http://i.imgur.com/7j21FIR.jpg
http://i.imgur.com/z2tVnNC.jpg
http://i.imgur.com/mnsAGuF.jpg
http://i.imgur.com/vIZM1NY.jpg
http://i.imgur.com/JT3XRI4.jpg
http://i.imgur.com/SNpwTmp.jpg
http://i.imgur.com/u9ynLb9.jpg
http://i.imgur.com/DrFWsBP.jpg
http://i.imgur.com/rU6oyup.jpg
http://i.imgur.com/XxBD5nl.jpg
http://i.imgur.com/d09qQzP.jpg
http://i.imgur.com/vvPSbqI.jpg
http://i.imgur.com/1hdfobQ.jpg
http://i.imgur.com/4LLC6Vs.jpg
http://i.imgur.com/RfasxO2.jpg
http://i.imgur.com/BBcpOos.jpg
http://i.imgur.com/zMH8mgG.jpg
http://i.imgur.com/7g8k2Ww.jpg

3
모든 이미지는 ... 동물입니까? 이 몇 가지 속임수는 여기에 것입니다 : P 일을하기 때문에 나는 귀여운 동물처럼 : 3
손잡이

1

R, 182 자

library(httr);while(0<1){s=paste("http://i.imgur.com/",paste(sample(c(LETTERS,letters),5),collapse=""),".png",sep="");if(HEAD(s)$headers$'content-type'=='text/html')'' else print(s)}

1

파이썬, 153 자

import string as s,random as w,requests as r
while 1:
 t='http://i.imgur.com/%s.png'%''.join(w.sample(s.letters,5))
 if'not'not in r.get(t).text:print t

이것이 작동하는 동안 피가 느리고 출력을 반환하기까지 몇 초가 걸릴 수 있습니다.

@ beary605의 솔루션에서 영감을 얻었습니다. 콘텐츠 유형 헤더로 이미지를 확인하려고 할 때 많은 문자를 절약했습니다.


random.sample:) 문자를 선택하는 훨씬 좋은 방법입니다.
beary605

그렇습니다. Code golf가 Google에 어떤 영향을 미치게되는지 알고 놀랍니다.
elssar

1

배쉬 (129, 121) (117, 109)

두 가지 버전이 있습니다 : 반복 및 끝없는 재귀 버전 (모든 메모리를 천천히 소모합니다). 두 버전 모두 실제로 PNG 파일이 있는지 확인합니다 (jpg, gif 및 기타 파일 형식은 무시 됨).

반복 (구형) (129) :

while true;do u=http://i.imgur.com/$(tr -dc a-zA-Z</dev/urandom|head -c5).png;curl $u -s 2>&1|head -c4|grep PNG$ -q&&echo $u;done

재귀 (구형) (121) :

:(){ u=http://i.imgur.com/$(tr -dc a-zA-Z</dev/urandom|head -c5).png;curl $u -s 2>&1|head -c4|grep PNG$ -q&&echo $u;:;};:

참고 : grep과의 호환성 문제가있을 수 있습니다. 내 grep 매뉴얼은 -sgrep의 출력 을 침묵 시키지만 아무것도하지 않습니다. 그러나, 사용 --quiet, --silent또는 -q작동 대신.

편집하다:

https://codegolf.stackexchange.com/a/10499/7195 :)를 읽은 후 컨텐츠 헤더 사용

반복 (117) :

while true;do u=http://i.imgur.com/$(tr -dc a-zA-Z</dev/urandom|head -c5).png;curl $u -sI|grep image -q&&echo $u;done

재귀 적 (109) :

:(){ u=http://i.imgur.com/$(tr -dc a-zA-Z</dev/urandom|head -c5).png;curl $u -sI|grep image -q&&echo $u;:;};:


0

배쉬 / 명령 줄 도구, 72 자

@memowe의 영리한 기술을 빌리기 :

curl -sL http://imgur.com/gallery/random|grep e_sr|cut -d\" -f4;exec $0

이는 동일한 프로세스 공간 내에서 자체를 다시 실행하여 연속 루프를 달성합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.