saya merasa beruntung

8

Tulis fungsi terpendek yang mengembalikan konten hasil pertama pencarian Google ("Saya merasa beruntung").

Contoh:

lucky('cat');

Mungkin mengembalikan sesuatu seperti:

<!DOCTYPE html>
<html>
  <head>
    <title>Cats are cool</title>
    <meta charset="utf-8" />
  </head>
  <body>
    <h1>CAAAAAAAAAAATSSSSSSSSSS!!!!!!!!</h1>
    <p>
      Cats are so cool!
    </p>
  </body>
</html>
SteeveDroz
sumber

Jawaban:

12

Bash, 46 byte

l()(wget -UM -qO- "gogle.de/search?btnI&q=$1")

Menggunakan fitur sebenarnya saya merasa beruntung , seperti jawaban lainnya.

Google mendaftar beberapa agen pengguna (termasuk WGet, cURL, dan Java), tetapi M tampaknya berfungsi dengan baik.

Dennis
sumber
Mengapa gogle.debahkan ada?
3
Untuk menangkap kesalahan ketik. googl.deakan bekerja juga.
Dennis
2
@professorfish gogle.comjuga ada. Sayangnya googl.co.ukpengalihan ke situs iklan yang cerdik.
Beta Decay
@BetaDecay Anehnya, ini mengarahkan saya ke halaman lain setiap saat.
qwr
7

Ruby, 79/145

Saya meminjam btnItrik dari @ rink.attendant.6 untuk solusi ini. Terima kasih Beta Decay untuk memendekkannya menjadi 2 karakter.

require'open-uri'
f=->q{URI(URI.escape"http://gogle.de/search?btnI&q="+q).read}

Saya juga punya solusi yang benar-benar mendapatkan hasil pertama dari halaman hasil, yaitu 145 byte.

require'open-uri'
f=->q{open(URI.extract(URI(URI.escape"http://google.com/search?q=#{q}").read.split('class="r"')[1])[0].split("&amp;")[0]).read}
britishtea
sumber
5

PHP, 157 105/87 102/87 100/85

Menggunakan file_get_contents

<?php function l($q){return file_get_contents("https://google.ca/search?btnI&q=".rawurlencode($q));}

Tanpa membolehkan spasi dalam istilah pencarian, itu hanya 87 karakter:

<?php function l($q){return file_get_contents("https://google.ca/search?q=$q&btnI");}

Versi asli menggunakan cURL

Saya kira sintaks array pendek dapat digunakan di PHP 5.4+:

<?php function l($q){$ch=curl_init("https://google.ca/search?btnI=1&q=".rawurlencode($q));curl_setopt_array($ch,[19913=>1,52=>1]);return curl_exec($ch);}

Kalau tidak, ini lima karakter lagi dengan penginisialisasi array normal, 162:

<?php function l($q){$ch=curl_init("https://google.ca/search?btnI=1&q=".rawurlencode($q));curl_setopt_array($ch,[19913=>1,52=>1]);return curl_exec($ch);}

Versi yang tidak memungkinkan spasi dalam istilah pencarian : Tidak perlu untuk pengkodean URL (138):

<?php function l($q){$ch=curl_init("https://google.ca/search?q=$q&btnI=1");curl_setopt_array($ch,[19913=>1,52=>1]);return curl_exec($ch);}
Tidak menggunakan konstanta
<?php
function l($q){
$ch = curl_init("https://google.ca/search?btnI=1&q=" . rawurlencode($q));
curl_setopt_array($ch, array(
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_FOLLOWLOCATION => 1
  ));
return curl_exec($ch);
}
rink.attendant.6
sumber
Anda harus dapat menggantinya "https://google.ca/search?q=".rawurlencode($q)."&btnI=1"dengan"http://google.ca/search?btnI=1&q=".rawurlencode($q)
NinjaBearMonkey
Baru sadar, mengubahnya untuk kedua jawaban saya
rink.attendant.6
Apakah Anda menggunakan SSL untuk alasan tertentu?
Dennis
Anda bisa menggantinya btnI=1dengan btnI.
Beta Decay
4

C #, 183 180 178

Ini adalah pertama kalinya saya menulis kode dalam C # sehingga mungkin bisa menggunakan peningkatan. Umpan balik dipersilahkan!

string l(string q){return System.Text.Encoding.UTF8.GetString((new System.Net.WebClient()).DownloadData("https://google.ca/search?btnI&q="+System.Web.HttpUtility.UrlEncode(q)));}

Tidak ditambang

string l(string q) {
    return System.Text.Encoding.UTF8.GetString(
        (new System.Net.WebClient()).DownloadData(
            "https://google.ca/search?btnI&q=" + System.Web.HttpUtility.UrlEncode(q)
        )
    );
}
rink.attendant.6
sumber
1
Anda bisa menggunakan 'DownloadString' dan menghindari bit Encoding.
Geoff
3

CJam, 40 byte

Kupikir, akhirnya aku akan gmencoba metode ini

{"gogle.de/search?btnI&q="\S/"%20"*+g}:F

Ini menciptakan metode / blok Fyang dapat digunakan seperti

{"gogle.de/search?btnI&q="\S/"%20"*+g}:F; "cats and dogs"F

Ini adalah bagaimana fungsi bekerja di CJam ..

Tidak berfungsi dalam penerjemah online, jadi Anda harus mengunduh dan menggunakan Java.

Perhatikan bahwa Google menolak semua permintaan dengan agen pengguna Java, jadi Anda harus memulai CJam dengan bendera tambahan -Dhttp.agent=M

Pengoptimal
sumber
+1 untuk CJam dan Anda, -1 untuk Google. Mereka mengembalikan 403 jika Agen-Pengguna adalah Java. Saya harap @aditsu akan menyelesaikan ini.
manatwork
@aditsu - Ada rencana untuk itu?
Pengoptimal
2
Ini hanya akan berfungsi jika Anda menipu agen pengguna dengan mengirimkan, misalnya, -Dhttp.agent=Mke penerjemah Java.
Dennis
2

Python 3 - 78

Penggunaan gogle.deuntuk singkatnya. Jalankan sebagai f(query).

f=lambda x:__import__("requests").get("http://gogle.de/search?btnI&q="+x).text

Jika Anda ingin memiliki spasi dalam kueri Anda, itu adalah 98 karakter.

f=lambda x:__import__("requests").get("http://gogle.de/search?btnI&q="+x.replace(" "," %20")).text
Peluruhan Beta
sumber