এটি একটি মুভি চ্যালেঞ্জ


10

এটি একটি সাধারণ (ইশ) ওয়েব স্ক্র্যাপিং চ্যালেঞ্জ।

ইনপুট

আপনার কোডটিতে এমপিএএ ফিল্ম রেটিং এবং ইনপুট হিসাবে 0 থেকে 100 পর্যন্ত একটি সংখ্যা নেওয়া উচিত । এটি আপনার পক্ষে সুবিধাজনক কোনও উপায়ে এটি করতে পারে।

আউটপুট

আপনার কোডটি এমন কোনও চলচ্চিত্রের নাম ফিরিয়ে আনবে যা ক) ফিল্মের রেটিং এবং খ) রোটেনটোমোটস থেকে টমেটোমিটারে সংখ্যার স্কোর ।

যদি এরকম কোনও সিনেমা না থাকে তবে এটি আপনার পছন্দসই কিছু আউটপুট করতে পারে।

সম্ভাব্য এমপিএএ ফিল্মের রেটিংগুলি G, PG, PG-13, R, NC-17, NR

আপনার কোড এক বা একাধিক চলচ্চিত্রের প্রতিবেদন করতে পারে, এটি আপনার উপর নির্ভর করে।

স্পষ্ট করার জন্য, আপনার কোডটি কোয়েরিগুলির উত্তর পেতে ওয়েবে অ্যাক্সেস করা।

উদাহরণ

ইনপুটটি "পিজি, 98" বলুন তাহলে আপনার কোডটি "জুট্রপোলিস" আউটপুট দিতে পারে।

ফিল্ম রেটিংয়ের সাথে কাজ করে আপনার কোডের একটি উদাহরণ দেখান PGএবং 98আপনার উত্তর সহ স্কোর করুন ।


ও_ও এনসি -17 খারাপ শোনাচ্ছে
ক্রিস্টোফার

1
NC-17, অন্যদের থেকে পৃথক, অনুপযুক্ত বলে মনে করা হচ্ছে । : পি
সম্পূর্ণরূপে

আমার উত্তরটি কি একের বেশি সিনেমাতে ফিরে আসবে?
ব্ল্যাকক্যাপ

1
@ ব্ল্যাকক্যাপ প্রশ্নটি সম্পাদনা করেছেন। এটা তোমার উপর.

জুট্রোপলিস নাকি জুটোপিয়া?
ব্ল্যাকক্যাপ

উত্তর:


2

স্ট্রাটোস , 133 বাইট

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

চেষ্টা করে দেখুন!


দয়া করে আপনার কোড ব্যবহার করা হচ্ছে তার একটি উদাহরণ দেখাতে পারেন।

@ ল্যাম্বিক ওয়েল, এটি চালান, এবং সংখ্যাটি টাইপ করুন, এন্টার টিপুন, রেটিং টাইপ করুন, এন্টার টিপুন এবং এটি আপনাকে আউটপুট দেবে।
Okx

আপনি কি ড্রপ করতে পারেন www.?
শেগি

দুর্ভাগ্যক্রমে
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 বাইট

রোটেনটোমোটস ডট কমের মূল থেকে চালানো দরকারশিরোনামযুক্ত একটি 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)

জাভাস্ক্রিপ্টের উত্তরগুলি পরীক্ষা করার জন্য যদি ক্লিক এবং চেহারা উপায় থাকে তবে এটি দুর্দান্ত হবে।

@ ল্যাম্বিক: সাধারণত এপিআইয়ের সাথে কাজ করার সময় এটি করা যেতে পারে তবে এই ক্ষেত্রে আরটি-র সিওআরএস পলিসি এটি প্রতিরোধ করে। ধন্যবাদ, গ্রহণের জন্য ধন্যবাদ।
শেগি

হুম..আমি কেবল লক্ষ্য করেছি ছোটখাটো উত্তর আছে কিন্তু এখনই স্ট্রাতোস কোড পরীক্ষা করার মতো শক্তি / দক্ষতা আমার কাছে নেই expert আমি যদি করি তবে আমাকে গ্রহণযোগ্যতাটি বদলাতে হবে, দুঃখিত।

@ ল্যাম্বিক: আমি স্ট্রেটোসকে এটি পাওয়ার (পুরোপুরি) পুরোপুরি প্রত্যাশা করেছিল।
শেগি

ওহ, আমি অন্যান্য মুভি-সংক্রান্ত প্রশ্নের

3

পাইথন 2 + অনুরোধ, 209 204 বাইট

-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
মনে করুন আপনার যেখানে (আর, টি) দরকার হতে পারে (
এল, পি

1
আপনি এই লিঙ্কটি ব্যবহার করতে পারেন: http://rottentomatoes.com/api/private/v2.0/browse?minTomato=%d&maxTomato=%d&type=dvd-streaming-all( https-> httpএবং ড্রপ www.) কয়েকটা বাইট সংরক্ষণের জন্য

1
দয়া করে আপনার কোড ব্যবহার করা হচ্ছে তার একটি উদাহরণ দেখাতে পারেন।

2

কিউ / কেডিবি + , 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

মন্তব্য:

  • আপনি যদি নিজের চেষ্টা করে দেখতে চান তবে আপনার পরিবেশটি সঠিকভাবে সেটআপ হয়েছে তা নিশ্চিত করার জন্য কুকবুক / এসএসএল পৃষ্ঠার মাধ্যমে একটি পঠন নিন ।
  • ব্যর্থ হলে আমরা অপসারণ sএর https, বা www., দেয় 301 Permanently Movedপ্রতিক্রিয়া।

আপনার উত্তরের শিরোনামে "q / kdb +" এর জন্য একটি লিঙ্ক যুক্ত করতে পারেন? অনেক লোক এ সম্পর্কে কখনও শুনেনি এবং আপনি তাদের (আমাকে) শিক্ষিত করতে পারেন।

সমাপ্ত :) আমি ওকেতে একটি সমাধান লেখার প্রত্যাশা করছিলাম তবে অনলাইন রেপ্লিট ব্যবহার করার সময় একটি 'না' অ্যাক্সেস-কন্ট্রোল-অলজিন-অরিজিন 'শিরোনাম পাওয়া যাচ্ছে ...' ( johnearnest.github.io/ok/index.html ), তাই বন্ধ-উত্স 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.