영화 찾기 과제입니다


10

이것은 단순한 웹 긁기 문제입니다.

입력

코드는 MPAA 필름 등급 과 0에서 100 사이의 숫자를 입력으로 사용해야 합니다. 편리한 방법으로이 작업을 수행 할 수 있습니다.

산출

귀하의 코드는있는 모든 영화)이 영화 등급과 B)에서 토마토 지수의 수치 점수의 이름을 반환해야 로튼 토마토를 .

그러한 영화가 없으면 원하는 것을 출력 할 수 있습니다.

가능한 MPAA 필름 등급은 G, PG, PG-13, R, NC-17, NR입니다.

코드에서 하나 이상의 영화를보고 할 수 있습니다.

명확히하기 위해 코드는 웹에 액세스하여 쿼리에 대한 답변을 얻습니다.

입력이 "PG, 98"이라고하면 코드에서 "Zootropolis"를 출력 할 수 있습니다.

영화 등급 PG및 점수 98와 함께 작동하는 코드의 예를 답변과 함께 보여주세요.


O_O NC-17 소리가 나지 않습니다
Christopher

1
NC-17은, 다른 사람과 달리되어 가정 부적절 할 수 있습니다. : P
완전히 인간적인

내 답변이 둘 이상의 영화를 반환해야합니까?
BlackCap

1
@BlackCap 질문을 편집했습니다. 그것은 당신에게 달려 있습니다.

주 트로 폴리스 또는 주 토피아?
BlackCap

답변:


2

스트라토스 , 133 바이트

{
f"www.rottentomatoes.com/api/private/v2.0/browse?minTomato=%&maxTomato=%&type=dvd-streaming-all"r"results")s"mpaaRating"=⁰
s"title"

시도 해봐!


사용중인 코드의 예를 보여 주시겠습니까?

@Lembik 글쎄, 그것을 실행하고 숫자를 입력하고 Enter 키를 누른 다음 등급을 입력하고 Enter 키를 누르면 출력이 나타납니다.
Okx

떨어 뜨릴 수 있습니까 www.?
얽히고 설킨

@Shaggy 불행히도 아닙니다.
Okx

어쩌면 실행중인 스크린 샷을 게시 할 수 있습니까?

12

배쉬, 182 바이트

curl "https://www.rottentomatoes.com/api/private/v2.0/browse?minTomato=$2&maxTomato=$2&type=dvd-streaming-all" 2>/dev/null|grep -o "{[^}]*aRating\":\"$1\""|grep -Po 'title":"\K[^"]*'

용법:

$ bash script PG 98
The Island President
Inside Out
Zootopia
Paddington
Love & Friendship
Long Way North (Tout en haut du monde)

나는이 답변을 정말로 좋아한다.

6

자바 스크립트 (ES6) 167 162 159 바이트

rottentomatoes.com의 루트에서 실행해야합니다 . 제목이 포함 Promise개체반환합니다 .

s=>n=>fetch(`api/private/v2.0/browse?minTomato=${n}&maxTomato=${n}&type=dvd-streaming-all`).then(r=>r.json()).then(j=>j.results.find(x=>x.mpaaRating==s).title)

특정 디렉토리에서 실행하도록 요구할 수 있으면 139 바이트가됩니다.

s=>n=>fetch(`browse?minTomato=${n}&maxTomato=${n}&type=dvd-streaming-all`).then(r=>r.json()).then(j=>j.results.find(x=>x.mpaaRating==s).title)

Javascript 답변을 테스트하는 클릭 앤 룩 방법이 있다면 좋을 것입니다.

@Lembik : 일반적으로 API로 작업 할 때 수행 할 수 있지만이 경우 RT의 CORS 정책은이를 방지합니다. 그건 그렇고, 수락 주셔서 감사합니다.
얽히고 설킨

흠 .. 짧은 답변이 있음을 알았지 만 지금 Stratos 코드를 테스트 할 에너지 / 전문 지식이 없습니다. 그렇게하면 수락을 변경해야합니다. 죄송합니다.

@Lembik : Stratos가 그것을 얻을 것으로 기대했습니다 (지금까지).
얽히고 설킨

오, 나는 다른 영화 찾기 질문에 현상금을 추가했습니다 :)

3

Python 2 + 요청, 209204 바이트

Ian Gödel 덕분에 -5 바이트

lambda r,t:[i['title']for i in get('http://rottentomatoes.com/api/private/v2.0/browse?minTomato=%d&maxTomato=%d&type=dvd-streaming-all'%(t,t)).json()['results']if i['mpaaRating']==r]
from requests import*

1
당신이 (r, r)있는 곳에 (t, t)가 필요할지도 모른다
ElPedro

1
저장된 몇 바이트에 대해이 링크를 사용할 수 있습니다 http://rottentomatoes.com/api/private/v2.0/browse?minTomato=%d&maxTomato=%d&type=dvd-streaming-all( https-> httpwww.) .

1
사용중인 코드의 예를 보여 주시겠습니까?

2

q / kdb + , 168 바이트

해결책:

{(r(&)(r:.j.k[.Q.hg`$"https://www.rottentomatoes.com/api/private/v2.0/browse?type=dvd-streaming-all&min",t,"&max",t:"Tomato=",y]`results)[;`mpaaRating]like x)[;`title]}

예:

q){(r(&)(r:.j.k[.Q.hg`$"https://www.rottentomatoes.com/api/private/v2.0/browse?type=dvd-streaming-all&min",t,"&max",t:"Tomato=",y]`results)[;`mpaaRating]like x)[;`title]}["PG";"98"]
"The Island President"
"Inside Out"
"Zootopia"
"Paddington"
"Love & Friendship"
"Long Way North (Tout en haut du monde)"

설명:

.Q.hg           / fetch a URL
.j.k            / parse json string into Q dictionaries
`results        / index into dictionary with key `results
[;`mpaaRating]  / index into these sub dictionaries extracting mpaaRating
like x          / binary list where they match, e.g. "PG"
(&)             / where, list indices where true
[;`title]       / index into dictionary with key `title

노트:

  • 직접 시험해보고 싶다면 Cookbook / SSL 페이지를 읽고 환경이 올바르게 설정되었는지 확인하십시오.
  • 우리는 제거하면 실패 shttps, 또는 www., 제공 301 Permanently Moved응답을.

아마 대답 제목에 "q / kdb +"에 대한 링크를 추가 하시겠습니까? 많은 사람들이 그것에 대해 들어 본 적이 없으며 그들을 교육시킬 수 있습니다.

완료 :) oK로 솔루션을 작성하고 싶지만 온라인 repl ( johnearnest.github.io/ok/index.html 사용시 ' No'Access -Control-Allow-Origin '헤더가 없습니다 ...'가 표시됨) ), 폐쇄 소스 Q로
떨어

2

자바 스크립트 (ES2017), 158 바이트

async(r,n)=>(await(await fetch(`api/private/v2.0/browse?minTomato=${n}&maxTomato=${n}&type=dvd-streaming-all`)).json()).results.find(m=>m.mpaaRating==r).title

썩은 토마토 홈페이지 에서 실행 :

f=async(r,n)=>(await fetch(`api/private/v2.0/browse?minTomato=${n}&maxTomato=${n}&type=dvd-streaming-all`).then(x=>x.json())).results.find(m=>m.mpaaRating==r).title
f('PG',98).then(console.log)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.