Tulis perangkat lunak yang mencetak pada stdout jumlah jawaban dan jumlah komentar (terlihat dan runtuh dari pertanyaan dan jawaban) dari pertanyaan / halaman ini.
Script Anda harus berjalan dengan halaman ini ditutup ketika dimulai.
Output contoh yang diharapkan:
A12C40
Di mana A adalah Jawaban dan C untuk Komentar.
Jawaban:
Perl,
91 9692 karakterBeberapa hal hanya untuk memecahkan solusi dari yang lain ha ha ha :-P
tampilkan 93 komentar lagi
href
nt = "99" (ha ha crash @Fez Vrasta)
a, tunjukkan 99 tunjukkan 99 ha ha
href href href ha ha haha :-D
Ya ampun, baru saja memecahkan jawaban saya sendiri! Saya menemukan bahwa salah satu trik di atas, yang saya pikir tidak melakukan apa-apa, akan mulai berfungsi setelah jawaban ini tidak diedit untuk beberapa waktu! Jadi solusi Anda hanya akan bekerja untuk beberapa waktu. Itu sebabnya Anda telah melihat +1 lebih banyak jawaban dalam solusi Anda .. Ini bom waktu! Jawaban saya sudah cenderung :-) Aaah, temukan cara bagaimana meluncurkannya SEKARANG ...
sumber
perl -E
. Menghapus komentar saya. Anda juga dapat menghapus referensi Anda untuk jawaban saya, karena Anda tidakXQuery,
169,160, 165Lebih mudah dibaca (dengan spasi):
BaseX digunakan sebagai prosesor XQuery.
sumber
doc()
fungsi) jika halaman ini akan menjadi XML yang valid ...$d//*[@class="comments-link"]/b
bagi (dalam <b> tag jumlah komentar yang tersembunyi ditunjukkan)Python 3, 180
Saya berasumsi bahwa pertanyaan ini tidak akan memiliki banyak halaman jawaban.
sumber
A13C20
. Sertakan braket miring dalam regex dan saya pikir itu harus baik, karena mereka lolos.,sep=''
BASH + AWK
163,144,138,111,110,114,131,132, 105Yang sama dengan ini, tetapi tanpa mengarahkan ke file:
Keluaran saat ini
Penjelasan
ikalTransfer URL.
-s
incurl
adalah untuk diam. Dan-L
untuk mengikuti arahan ulang.Untuk mengurai file. Karena beberapa jawaban memiliki beberapa kode untuk memecahkan jawaban lain, penguraian telah diubah sehingga mem-parsing dari awal baris
(^
) untuk memastikan tidak rusak.-F'[<>]'
atur pemisah bidang sebagai<
atau>
. Dengan cara ini teks dapat diuraikan dengan benar untuk "tampilkan XXX komentar lagi"./^[\t]*>show <b>/{c+=$4}
pada baris yang berisi "spasi ....> tampilkan", dapatkan bidang ke-4 (berdasarkan<
,>
pemisah) dan tambahkan nilainya ke penghitung komentar./^[ ]*<tr.*s="comm/{++c}
pada baris yang berisi "spasi .../^<td.*rcell">/{++a}
pada baris yang berisi "", tambahkan penghitung jawaban.END{print "A"a"C"c}
cetak hasilnya.sumber
m
danf
dalam kode Anda:echo "A$(grep -c 'rcell">' m)C$(grep -c 'mment">' f)"
seharusnyaecho "A$(grep -c 'rcell">' f)C$(grep -c 'mment">' f)"
, bukan?PHP yang benar-benar berfungsi (302 karakter)
Tidak seperti semua jawaban lain sejauh ini, ini mengembalikan jawaban yang benar bahkan ketika pertanyaan tersebut tumpah ke lebih dari satu halaman.
sumber
(count($i)-1)
mengoreksi hitungan untuk tidak memasukkan pertanyaan.[]
alih-aliharray()
menginisialisasi$i
memiliki lebih dari 100 item. (Versi saya sendiri yang sama di ruby tidak memiliki batasan ini. Meskipun diakui dapat menabrak batas API. ;-))R, 326
Dengan lekukan dan penjelasan:
Diuji dengan halaman ini , ia memberikan jumlah komentar yang tepat (termasuk disembunyikan) di halaman depan dan jumlah jawaban yang tepat, yaitu
A23C63
.Dan di sini ada solusi pada 482 karakter yang mendapatkan jumlah komentar yang benar jika pertanyaan tersebut akhirnya menyebar pada beberapa halaman:
Bertakuk:
Mencoba pada pertanyaan ini dan dikeluarkan:
A125C499
.sumber
HTML, 37
Maaf, penyalahgunaan aturan Blatant mengikuti!
Penjelasan
q0x.eu/1
redirect ke: http: //api.stackexchange.com/2.1/questions/20277/comments? site = codegolf & callback = ...dimana callback berada:
q0x.eu/2
redirect ke http: //api.stackexchange.com/2.1/questions/20277/answers? site = codegolf & callback = ...dan
q0x.eu/3?n=...
mengalihkan ke http: //api.stackexchange.com/2.1/answers/.../comments? site = codegolf & callback = ...Awalnya saya mencoba untuk melakukannya secara sah dan mungkin masih mencoba, tetapi ini tetap menyenangkan!
sumber
q0x.eu/1
itu? PS: solusi yang sah tidak bisa mengalahkan Perl anyways ;-) (tantangan terang-terangan)curl q0x.eu/1
atau sesuatu, tetapi terlalu malas ...Ruby 175 (dihitung di seluruh halaman, menggunakan API, bukan DOM)
Itu 242 tanpa url singkat:
291 jawaban sebelumnya:
Penghargaan kepada Peter Tailor untuk gagasan menggunakan API, dan Charles untuk menunjuk ke arah API yang lebih baik.
sumber
Python dengan stackpy 160
Pelaksanaan
Keluaran
Catatan
Kemarin saya berpikir untuk menggunakan stackexchange API tetapi butuh beberapa waktu bagi saya untuk memahami cara kerjanya. Hari ini, saya melihat ada beberapa jawaban pada tema yang sama. Untuk membuat jawaban saya sedikit berbeda, saya menggunakan perpustakaan eksternal.
Sadari juga bahwa jawaban lain yang bergantung pada penguraian pola seperti
cenderung pecah dalam waktu dekat, jadi jawaban yang lebih pasti adalah mengandalkan metode yang kuat seperti ini.
sumber
R 239
Setelah saya memposting jawaban saya, hasilnya adalah:
sumber
F("div","answer")
danF("td","comment-text")
tidak bekerja untuk saya (Error in F("div", "answer") : (list) object cannot be coerced to type 'double'
). Bukankah seharusnya standar untukf
menjadifunction(x)length(xmlValue(x))
bukanlength
, atau sesuatu yang serupa?xpathSApply(...,length)
harus mengembalikan vektor, bukan daftar. Saya tidak yakin mengapa Anda akan mendapatkan daftar. Dan tidak, saya benar-benar bermaksud menggunakanlength
dan tidakfunction(x)length(xmlValue(x))
: tujuannya adalah untuk mendapatkan vektor1
s, satu untuk setiap komentar atau jawaban.xpathSApply
dapat mengambil fungsi lain (sepertilength
) daripadaxmlValue
dan yang serupa adalah hal baru dari versi 3.94 paket (jika saya mengerti benar changelog mereka). Mungkin itulah sebabnya itu tidak berhasil untuk saya. Ya saya mendapat ide bahwa Anda menginginkan vektor 1s, tetapi dengan versi paket saya, saya hanya dapat mencapainya denganfunction(...
alih - alih adillength
.Tidak dapat percaya bahwa tidak ada yang muncul sampai sekarang! Solusi paling langsung untuk digunakan :-)
jQuery,
116101 karakter (di luar kompetisi)Mungkin ini tidak sesuai dengan aturan, saya menyimpannya hanya untuk bersenang-senang - solusi jQuery tidak boleh hilang :) Setidaknya sebagai referensi untuk menguji skrip Anda !!! ;-)
Coba jalankan dari konsol FireBug:
Jika Anda memiliki koneksi yang lambat, tingkatkan batas waktu :-) Terima kasih @Fez Vrasta untuk ide bagus mengklik tautan "tampilkan lebih banyak"!
Beberapa hal lain untuk memecahkan solusi dari yang lain, class = "comment" dan bom waktunya ha ha
sumber
PHP:
184172Penjelasan:
Untuk pertama kalinya PHP mengalahkan bahasa lain dalam skrip golf: ')
Beberapa markup tambahan untuk topik ini untuk menghindari regex "cheat":
tampilkan 9999 komentar lagi
sumber
Node, 403
Hanya mengenai API sekali ... kemungkinan bisa dipersingkat, tapi saya baru mengenal Node.
sumber
153151147, C # & CsQueryC # Dengan CsQuery:
Program lengkap:
118 C # & CsQuery di LINQPad atau di Roslyn
Jika menjalankan melalui LINQPad diizinkan maka:
Menghasilkan:
Lebih menyenangkan.
F # dengan CsQuery, 143:
sumber
JAWABAN YANG TIDAK DILAKUKAN INVALID - DI SINI HANYA UNTUK MENYENANGKAN
Javascript + jQuery - 155
Cukup rekatkan di konsol Anda. Diasumsikan bahwa hanya akan ada satu halaman:
sumber