Saya hanya ingin memiliki https-Link dalam file terpisah. Bagaimana melakukannya tanpa mendapatkan baris kode yang lengkap, hanya tautannya?
findstratau grep?
Saya hanya ingin memiliki https-Link dalam file terpisah. Bagaimana melakukannya tanpa mendapatkan baris kode yang lengkap, hanya tautannya?
findstratau grep?
Jawaban:
Pertama dan terpenting, jangan mencoba untuk mem-parsing HTML dengan ...
XPath dapat memberikan apa yang Anda inginkan - XPath dirancang khusus untuk ini:
//a/@href
Kemudian untuk menggunakan XPath dengan xmllint(utilitas lain akan ada):
xmllint --shell --html file.html <<<'cat //a/@href'
Itu akan memberi Anda banyak hal, termasuk prompt ( / >), nama atribut ( href="...") dan pemisah ( -------) ... jadi filterlah, sortir, dan dapatkan daftar URL unik:
xmllint --shell --html file.html <<<'cat //a/@href' \
| sed '/^ href="/!d;s/^ href="//;s/"$//' \
| sort \
| uniq
Semuanya tanpa grep.
Di sini, kami gunakan seduntuk:
/^ href="/!d - hapus semua baris yang tidak cocok dengan regex ^ href="s/^ href="// - Memotong awalans/"$// - Memotong sufiksAtau, Anda dapat menggunakan penyeleksi CSS dan bukannya XPath, dengan tq(proyek Python):
tq 'a' -a href < file.html
Catatan: setelah diskusi sekitar grep, saya menganggap Unix ... Jika Anda memiliki Cygwin atau WSL, maka ini mungkin akan bekerja di sana juga.
xmllint(sebuah utilitas dari libxml2 ) memiliki rilis Windows.
href="?