কোড গল্ফ: গুগল ফলাফল পার্সিং


16

যখন আপনি গুগলে কিছু অনুসন্ধান করেন, ফলাফল পৃষ্ঠার মধ্যে, ব্যবহারকারী ফলাফলের প্রথম পৃষ্ঠার জন্য সবুজ লিঙ্কগুলি দেখতে পাবেন।

সংক্ষিপ্ততম ফর্মের মধ্যে, কোনও ভাষা ব্যবহার করে বাইটে, লিঙ্কগুলি স্টাডাউটের তালিকা আকারে প্রদর্শন করুন। স্ট্যাক এক্সচেঞ্জ ক্যোয়ারির প্রথম ফলাফলের জন্য এখানে একটি উদাহরণ রয়েছে:

একটি স্ক্রিন ক্যাপচার

ইনপুট :

আপনি চয়ন করেছেন: ইউআরএল ( www.google.com/search?q=stackexchange&ie=utf-8&oe=utf-8) বা ঠিকstackexchange

আউটপুট:

french.stackexchange.com/, stackoverflow.com/, fr.wikipedia.org/wiki/Stack_Exchange_Network, en.wikipedia.org/wiki/Stack_Exchange,...

বিধি:

  • আপনি URL শর্টনার বা অন্যান্য অনুসন্ধান সরঞ্জামগুলি / API গুলি ব্যবহার করতে পারবেন যতক্ষণ না ফলাফলগুলি https://www.google.com অনুসন্ধান করার মতো হবে ।

  • এটি ঠিক আছে যদি আপনার প্রোগ্রামটিতে কোনও ওয়েব ব্রাউজার খোলার মতো পার্শ্ব প্রতিক্রিয়া থাকে যাতে গুপ্ত গুগল এইচটিএমএল / জেএস পৃষ্ঠাগুলি রেন্ডার করার সাথে সাথে সেগুলি পড়তে পারে।

  • আপনি ব্রাউজার প্লাগইন, ব্যবহারকারী স্ক্রিপ্ট ব্যবহার করতে পারেন ...

  • আপনি যদি স্টডআউট ব্যবহার করতে না পারেন তবে এটি স্ক্রিনে মুদ্রণ করুন, উদাহরণস্বরূপ। একটি পপআপ বা জাভাস্ক্রিপ্ট সতর্কতা!

  • আপনার শেষ / বা শুরু হওয়া পোস্ট (গুলি) দরকার নেই: //

  • আপনার অন্য কোনও লিঙ্ক প্রদর্শন করা উচিত নয়

  • সবচেয়ে কম কোড জয়!

  • শুভকামনা!

সম্পাদনা: এই গল্ফটি 07/08/15 এ শেষ হবে।


আপনি যেহেতু ব্যবহার করছেন google.frতাই আমাদেরও কি তা ব্যবহার করতে হবে?
বিটা ক্ষয়

আপনি যে কোনও গুগল ব্যবহার করতে পারেন। আমি ফরাসী, তাই আমি .fr ব্যবহার করেছি, তবে আপনি .কম বা কোনও কিছু ব্যবহার করতে পারেন :) কোনও বিষয় নয়
WayToDoor

এবং সংক্ষিপ্ত URL গুলি gogle.deযেমন ভাল আছে?
বেটা ক্ষয়

আপনি URL সংক্ষিপ্তকারী বা অন্যান্য অনুসন্ধান সরঞ্জামগুলি / API গুলি ব্যবহার করতে পারবেন যতক্ষণ না ফলাফলগুলি google.com অনুসন্ধান করার মতো হবে , সুতরাং হ্যাঁ
WayToDoor

উত্তর:


17

বাশ + গ্রেপ + লিংস, 38

যেহেতু আমরা একটি ওয়েব ব্রাউজার খুলতে পারি, তারপরে আমি ব্যবহার করব lynx:

lynx -dump $1|grep -Po '(?<=d:)[^&]+'

( grepপরিবর্তে ব্যবহারের জন্য @ মান্যাটওয়ার্ককে ধন্যবাদ sed)

আমরা পুরো URLটিতে প্যারামিটার হিসাবে পাস করি:

$ ./gr.sh "www.google.com/search?q=stackexchange&ie=utf-8&oe=utf-8"
http://stackexchange.com/
https://en.wikipedia.org/wiki/Stack_Exchange
https://twitter.com/stackexchange
https://play.google.com/store/apps/details?id=com.stackexchange.marvin
https://github.com/StackExchange/StackExchange.Redis
https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/Basics.md
https://www.crunchbase.com/organization/stack-exchange
$ 

যা একই তালিকা দেয়:

এখানে চিত্র বর্ণনা লিখুন


ভাল যে খুব সুবিধাজনক: ডি
বিটা ক্ষয়

3
sedভাল. sedদীর্ঘ। জিএনইউ চেষ্টা করুন grep:grep -Po '(?<=d:)[^&]+'
মানটওয়ার্ক

@ মান্যাটওয়ার্ক হ্যাঁ, অবশ্যই - ধন্যবাদ!
ডিজিটাল ট্রমা

1
উত্তর শিরোনামটি কপিপস্ট করা হয়েছিল? ;) bash, lynxবা sed(এবং এখন grep) এর কোনওটিই কোরিউটিলের অংশ নয়।
মানাতকার্ক

3
আমি বিশ্বাস করি আপনি এটি করতেও পারেন: lynx -dump $1|grep -Po 'd:\K[^&]+'(
অরক্ষিত

4

রুবি, 91 77 বাইট

require'open-uri';open(gets).read.scan(/ed:(.*?)\+/){|x|puts URI.decode x[0]}

সমস্ত requireএস ছাড়া সংক্ষিপ্ত হত । আহা !!! সম্পাদনা : তাই, সক্রিয় আউট, আমি না দ্বিতীয় প্রয়োজন হবে! এটি নির্দেশ করার জন্য @ মান্যাটওয়ার্ককে ধন্যবাদ।

পুরানো সংস্করণ (অকেজো সহ require):

require'open-uri';require 'uri';open(gets).read.scan(/ed:(.*?)\+/){|x|puts URI.decode x[0]}

বিধিগুলি যতক্ষণ না আপনি সেগুলি গণনা করেন ততক্ষণ কমান্ড লাইন বিকল্পগুলি ব্যবহারের অনুমতি দেয়: পেস্টবিন .
com

আপনি কি স্পষ্টভাবে প্রয়োজন তা নিশ্চিত require'uri'? ২.১.২-তে আমি URIমডিউলটি ওপেন-ইউরির প্রয়োজনীয়তার পরে উপলব্ধ হয়ে ওঠে।
manatwork

@ মান্যাটওয়ার্ক আপনাকে ধন্যবাদ! আপডেট করা হয়েছে।
kirbyfan64sos

শুধু আমার কৌতূহল জন্য: আমার পেস্টবিন বিকল্প হিসাবে কোড ব্লক পরিবর্তন না করার কোনও কারণ? (অবশ্যই, আমি প্রযুক্তিগত কারণে, ব্যক্তিগত কারণে নয়, যদি এটি আপনাকে পিছনে রাখে তবে আমি আগ্রহী))
manatwork

@ মান্যাটওয়ার্ক আমার দরকার, তবে আমি এই মুহুর্তে বাইট গণনাটি বের করতে খুব অলস ছিলাম। :)
kirbyfan64sos

4

ওল্ফ্রাম ভাষা (গণিত), ১৩৫

StringJoin/@(Cases[URLExecute["www.google.com/search",{"q"->#},"XMLObject"],XMLElement["cite",_,l_]:>l,-1]/.XMLElement["b",_,{s_}]:>s)&

আরও পঠনযোগ্য:

StringJoin/@(Cases[
    URLExecute["www.google.com/search",{"q"->#},"XMLObject"], 
    XMLElement["cite",_,l_]:>l,-1] /. 
    XMLElement["b",_,{s_}]:>s)

জায়গাগুলি কি সত্যিই প্রয়োজনীয়? সেগুলি ব্যতীত আমি 136 বাইট পাই ।
kirbyfan64sos

প্রয়োজন নেই এ সব ... আমি সত্যিই এই পর্যন্ত আঁট করা উচিত ..
Chuy

এই উত্তরটি সংক্ষিপ্ত করতে আপনি কি এই উত্তরটির মতো কিছু করতে পারেন ?
ডিজিটাল ট্রমা

3

পাইথন 3, 141 বাইট

ডিজিটাল ট্রমা জবাবের কাছাকাছি কোথাও নেই, তবে রেজেক্সটি কাজ করতে মজা লাগল: ডি

import re
print('\n'.join(map(lambda x:x[3:],re.findall('te>http[s]?://\w+\.[a-z]+[](/a-z\.)?]+',__import__("requests").get(input()).text))))

ইনপুট http://www.google.com/search?q=stackexchange&ie=utf-8&oe=utf-8জন্য প্রোগ্রাম আউটপুট:

https://en.wikipedia.org/wiki/
https://twitter.com/
https://play.google.com/store/apps/details?id...
https://www.crunchbase.com/organization/
https://www.facebook.com/
https://github.com/

গ্রিসির টিপ কার্যকর করে


আপনার কি সত্যিই ব্যবহার করা দরকার __import__?
ckjbgames

এছাড়াও, [x for x in spam]পরিবর্তে একটি নির্মাণ ব্যবহার করুন map। এটি আপনাকে একটি ভাল সংখ্যক বাইট সংরক্ষণ করবে।
ckjbgames

2

ফ্যাক্টর, 31 বাইট

এই জন্য একটি গ্রন্থাগার হতে পারে।

[ google-search [ url>> ] map ]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.