Wget dengan URL yang mengandung #

11

Saya mencoba mengunduh URL yang seperti itu http://www.somesite.com/restaurants.html#photo=22x00085.

Saya meletakkannya di antara tanda kutip tunggal, tetapi hanya mengunduh http://www.somesite.com/restaurants.html yang bukan halaman yang benar.

Apakah ada solusinya?

pengguna1289749
sumber
tidak dapat menguji ini sekarang, tetapi dari apa yang saya ingat% 20 bekerja untuk ruang, jadi% 23 mungkin akan bekerja untuk # (% 23 adalah penyandian-persen untuk #)
lupincho
3
bukankah itu file HTML yang sama? # Mungkin hanya memberi tahu browser web untuk melompat ke bagian tertentu dari halaman.
barlop

Jawaban:

20

wgetbekerja dengan baik. The URI sintaks menetapkan bahwa fragmen - yang #foobagian - harus ditafsirkan seluruhnya sisi klien, dan tidak digunakan ketika mengambil dokumen itu sendiri.

Misalnya, jika itu adalah laman HTML, peramban mungkin gulir ke bawah ke bagian bernama, atau - dalam kasus Anda - memicu beberapa kode JavaScript yang menunjukkan foto tertentu.

Dengan kata lain, sejauh wgetmenyangkut, URI

  • http://www.somesite.com/restaurants.html#photo=22x00085 dan
  • http://www.somesite.com/restaurants.html

... arahkan ke halaman yang sama /restaurants.html . Terserah browser Anda untuk melakukan sisanya. Pembukaan restaurants.html#photo=22x00085di browser akan berfungsi dengan baik.

pengguna1686
sumber
8

Tanpa mengunjungi tautan yang tepat, saya tidak tahu yang mana, tetapi hanya ada dua opsi:

Dennis
sumber
Saya telah melihat banyak situs yang menyalahgunakan fragmen URL dengan cara ini; di bagian atas daftar adalah Google sendiri. Ini melanggar sejumlah besar RFC, tetapi tidak banyak orang yang peduli, karena "berhasil" ...
Michael Hampton
1
@MichaelHampton: Bisakah Anda menunjukkan RFC mana yang dilanggar?
user1686
@grawity RFC 2396, bagian 2.4.3 dapat dibaca dengan mengatakan # bukan bagian dari URI mana pun. Ini tampaknya santai di RFC 3986, cukup samar untuk tidak mendefinisikan apa pun.
Rich Homolka
1
@RichHomolka: Ia hanya mengatakan bahwa "foo # bar" sebenarnya disebut "URI-Reference", yang terdiri dari URI (digunakan untuk pengambilan data) dan fragmen (interpretasi diserahkan kepada agen-pengguna). Itu akan dilanggar hanya jika fragmen itu benar-benar dikirim dalam permintaan HTTP.
user1686
0

Itu bukan URL untuk gambar. URL untuk halaman yang menggunakan skrip atau kode lain untuk mengambil gambar. Coba muat halaman dengan JavaScript dimatikan. Itulah yang wget ambilkan untukmu.

Untuk menemukan URL untuk gambar, coba kunjungi halaman melalui browser Anda dan kemudian klik kanan pada foto. Seharusnya ada opsi untuk melihat informasi tentang gambar, termasuk URL-nya.

Jika itu tidak berhasil, mungkin karena gambar sedang dimuat melalui Flash atau program sisi klien lainnya. Anda dapat menggunakan Fiddler atau Wireshark untuk melihat URL apa yang dimuatnya.

Jika Anda memberi kami URL situs yang sebenarnya dengan gambar, kami dapat membantu Anda menentukan bagaimana gambar tersebut dimuat.

Jeremy Stein
sumber