Ditemukan gambar ini di web hari ini. Menjadi pemrogram yang malas, saya tidak ingin membuka google dan mengetik beberapa karakter. Terlalu banyak pekerjaan! Ini adalah tugas yang sangat penting sehingga harus otomatis.
Tantangan
Semua orang tahu bahwa gambar pertama dalam hasil pencarian google selalu yang terbaik. Oleh karena itu harus disajikan kepada pengguna.
Anda harus menulis program atau fungsi yang menggunakan string sebagai parameter dan menampilkan gambar pertama yang ditemukannya di google ketika Anda mencari nama itu + kata-kata di glamour shot
belakangnya.
Permintaan pencarian Google
Untuk mencari gambar di google, url harus berisi parameter kueri tbm=isch
dan q=query
, dengan query
menjadi nama yang ingin Anda cari.
String kueri yang valid untuk nama saya Bas
adalahwww.google.com/search?tbm=isch&q=Bas
Memasukkan
Program atau fungsi Anda mengambil satu parameter input, yaitu nama yang ingin Anda cari di google. String ini akan terdiri dari karakter [a-z]
, [A-Z]
, [0-9]
dan (ruang). String ini dapat dipisahkan dengan spasi, untuk mencari string terpisah dari ruang di google, seseorang harus mengganti spasi dengan
+
. Misalnya, ini adalah kueri yang valid:
www.google.com/search?tbm=isch&q=Bassdrop+Cumberwubwubwub+glamour+shot
Keluaran
Gambar dapat ditarik ke layar, atau disimpan ke file (dalam format apa pun).
Jika hasil pencarian pertama di google adalah file gif, Anda dapat menampilkan gif atau menampilkan bingkai gif tersebut.
Uji kasus
Jalankan cuplikan ini untuk melihat hasil yang diharapkan
Ini adalah kode-golf , kode terpendek dalam byte yang menang!
sumber
[a-z0-9]
, mengedit posting saya. Url akan terlihat seperti contoh yang saya berikan, tidak perlu penyandian, hanya ruang untuk+
A-Z
dapat juga muncul, menilai dengan teladan Anda?Jawaban:
PowerShell v4 +, 160 byte
Mengambil input
$a
sebagai string. Apakah sebuahInvoke-WebRequest
(iwr
) ke lokasi Google yang sesuai, menggunakan blok skrip string dalam ke-replace
spasi dengan+
di string input. Kami mengambil.links
itu, di mana.innerhtml
adalah-like
input string kami. Itu menghasilkan tautan dengan deskripsi thumbnail yang tepat. Ambil yang pertama[0]
salah satu dari mereka, mengambil nya.innerhtml
dan-split
pada kutipan.[3]
Elemen keempat adalah teks di dalamimg src="
bagian tersebut, jadi kami melakukan yang lainiwr
, menentukan-outf
ile untuk berada$a.jpg
di folder lokal. Karena ini hanya thumbnail yang dibuat oleh Google, mereka dijamin dengan jpg.sumber
google.com
dengangoogle.nl
untuk -1 byteExcel VBA + ,
465332 BytesGolf:
Sub
Rutin penuh yang mengambil inputn
(singkatan nama) dari tipe yang diharapkanVariant/String
dan menampilkan hasil pencarian gambar google pertama untuk permintaan nama itu danglamour shot
ke jendela internet explorer.-2 byte untuk menghapus spasi di
If InStr(1, a.href, "imgres") Then
-2 byte untuk diubah
.navigate (a.href)
menjadi.navigate a.href
-27 byte untuk mengurangi
for each a in ... if (...) then ... end if .. next
loop kedo until ... loop
-10 byte untuk kondensasi
imgres
keres
danencrypted
keyp
-8 byte untuk menghapus initalizers untuk
j
,k
dan dengan asumsi modul bersih-1 byte untuk diubah
google.com
menjadigoogle.nl
-3 byte untuk diganti
Dim i as New ...
denganSet i=New ...
-8 byte untuk menghapus
SHDocVw.
referensi kelas-12 byte untuk menghapus
with i
blok-7 byte untuk dihapus
i.quit
- ini menyebabkan beberapa kebocoran memori dengan membiarkan internet explorer terbuka di latar belakang, karena itu disarankan agar versi ungolfed penuh digunakan sebagai gantinya atau bahwa tugas internet explorer diakhiri melalui task manager setelah digunakan-6 byte untuk pindah
i.navigate
ke subrutin pembantuh
-13 byte untuk pindah
Do Until ... Loop
ke subrutin pembantu-2 byte dengan pindah
j=0
ke helper dan menghapus,j
,,0
(x2)-11 byte untuk mengonversi ke fungsi jendela langsung anonim
-8 byte untuk mengurangi panggilan fungsi pembantu ke
for .. next
loop-16 byte untuk mengubah output dari
Sheets(1)
objek gambar ke tampilan melaluiInternetExplorer
objekTidak dikelompokkan, 1304 Bytes
Penggunaan gif
sumber
Vimperator , 30 penekanan tombol
Atau 27 penekanan tombol jika Anda tidak membutuhkan gambar dengan resolusi tertinggi:
Video: https://youtu.be/t8824UjlYt8
Untungnya mesin pencari standar di Firefox adalah google, dan Vimperator memungkinkan Anda mengetik petunjuk secara default. Ini lebih lama daripada harus memastikan bahwa itu selalu berfungsi terlepas dari apa yang Anda cari.
Mengambil input melalui clipboard.
Penjelasan:
Terima kasih kepada @TaylorScott untuk menemukan kasing tepi.
sumber
Python 3.6,
247242232 mungkin 224 byteIni adalah upaya yang lucu untuk menyelesaikan yang ini. Ini akan menyimpan file seperti
p.png
di direktori saat ini.Untuk menjalankannya dengan mudah dari baris perintah, cukup tempatkan konten di atas dalam file, seperti
glamour.py
dan jalankan:Pembaruan 1: Versi yang lebih baik dengan url google baru
Pembaruan 2:
Saya menyimpan beberapa byte:
f
flag interpolasi string python 3.6 baru tanpa mengalokasikansys.argv
ke variabelBeautifulSoup
panggilanYang terakhir kontroversial, karena menghasilkan pesan std.output memberitahu programmer untuk menentukan parser untuk kompatibilitas lintas platform, sehingga mungkin dianggap sebagai output yang tidak diinginkan.
Ini adalah versi 224 byte:
Berikut adalah versi 232 byte:
Tetapi versi yang lebih pendek dapat digunakan jika std.out dialihkan ke
/dev/null
atau sesuatu: Dsumber
www.google.nl/
atau bahkan mungkingoogle.nl
bukannyahttps://www.google.com.br/
menyimpan beberapa bytehttp://
agar berfungsi dengan permintaan. Tetapi google Brazil memberi saya hasil yang lebih lucu, jadi saya kehilangan poin menyenangkan: Dn = 'something'; f'{n}_here'
bukann = 'something'; '{n}_here'.format(n = n)
ataun = 'something'; '{}_here'.format(n)
Racket, 284 bye
Tangkapan layar:
sumber