Rumah  >  Artikel  >  pembangunan bahagian belakang  >  golang transfer html

golang transfer html

WBOY
WBOYasal
2023-05-27 16:26:38525semak imbas

Dalam pembangunan Web moden, HTML tidak dapat dielakkan kerana HTML ialah bahasa standard di Web dan bertanggungjawab untuk memaparkan pelbagai kandungan seperti teks, imej, video, dsb. pada halaman web. Untuk pembangun bahasa Go, memproses fail HTML juga merupakan tugas penting. Artikel ini akan memperkenalkan cara menggunakan Golang untuk menyalin fail HTML dari satu tempat ke tempat lain dan meneroka beberapa isu penukaran HTML biasa.

Dalam bahasa Go, anda boleh menggunakan fungsi "ioutil.ReadFile" dalam pakej "io/ioutil" untuk membaca fail dan menggunakan fungsi "Salin" dalam pakej "os" untuk menyalin fail daripada satu tempat ke tempat lain. Berikut ialah contoh penggunaan fungsi ini:

package main

import (
    "io/ioutil"
    "os"
)

func main() {
    source := "path/to/source.html"
    destination := "path/to/destination.html"

    //读取源文件的内容
    input, err := ioutil.ReadFile(source)
    if err != nil {
        panic(err)
    }

    //将文件内容写入目标文件中
    err = ioutil.WriteFile(destination, input, 0644)
    if err != nil {
        panic(err)
    }

    //输出成功信息
    println("File copied successfully")
}

Dalam kod di atas, kami menggunakan fungsi "ioutil.ReadFile" dalam pakej "io/ioutil" untuk membaca kandungan fail daripada fail HTML sumber dan simpannya dalam pembolehubah "input". Kemudian, kami menggunakan fungsi "ioutil.WriteFile" dalam pakej "io/ioutil" untuk menulis kandungan pembolehubah "input" ke fail sasaran. Akhir sekali, kami mengeluarkan mesej kejayaan yang menunjukkan bahawa fail telah berjaya disalin.

Walaupun contoh di atas boleh membantu kami memahami cara menyalin fail HTML dari satu tempat ke tempat lain menggunakan Golang, kadangkala kami perlu menukar fail HTML, seperti:

  1. Dari Ekstrak semua pautan daripada fail HTML
  2. Tukar aksara khas (seperti "&", "7cd5b91af30fe2437a6260ab1429d7ed") dalam fail HTML kepada urutan pelarian yang sepadan

Kami akan membincangkan perkara ini dua isu secara berasingan di bawah.

Ekstrak semua pautan dalam fail HTML

Kadangkala, kita perlu mengekstrak semua pautan daripada fail HTML yang mengandungi berbilang URL. Ini mungkin kerana kami ingin mengakses pautan ini secara langsung atau kerana kami perlu menggunakannya untuk mengikis data lain.

Untuk mendapatkan pautan dalam fail HTML, kami boleh menggunakan pakej "goquery". Ini ialah pustaka Go popular yang membolehkan kami mengekstrak data daripada fail HTML dengan mudah. Berikut ialah contoh penggunaan pakej "goquery" untuk mengekstrak pautan daripada fail HTML:

Mula-mula kita perlu memasang pakej "goquery" menggunakan arahan "go get", arahannya adalah seperti berikut:

go get -u github.com/PuerkitoBio/goquery
rrree

di atas Dalam kod, kami mentakrifkan fungsi "getLinks" untuk mendapatkan semua pautan dalam fail HTML. Mula-mula, kami membuka fail HTML menggunakan pakej "os" dan menghuraikannya menggunakan pakej "goquery". Kami kemudian menggunakan kaedah "Cari" daripada pakej "goquery" untuk mencari semua pautan dalam fail HTML dan menggunakan kaedah "Attr" untuk mendapatkan URL setiap pautan. Akhir sekali, kami menyimpan semua pautan dalam kepingan dan mengembalikannya.

Tukar aksara khas dalam fail HTML untuk melarikan diri dari urutan

Aksara khas dalam fail HTML (seperti "&", "7cd5b91af30fe2437a6260ab1429d7ed") boleh menyebabkan penukar penghuraian, jadi ia hendaklah ditukar kepada urutan pelarian yang sepadan. Sebagai contoh, "&" hendaklah ditukar kepada "&".

Pustaka standard Golang menyediakan pakej "html" yang boleh melaksanakan operasi pengekodan dan penyahkodan HTML. Fungsi "EscapeString" dalam pakej "html" boleh menukar aksara khas dalam fail HTML ke dalam urutan melarikan diri. Berikut ialah contoh menggunakan pakej "html" untuk menukar aksara khas dalam fail HTML ke dalam urutan melarikan diri:

package main

import (
    "log"
    "os"

    "github.com/PuerkitoBio/goquery"
)

//获取HTML文件中的所有链接
func getLinks(filename string) ([]string, error) {
    //打开HTML文件
    file, err := os.Open(filename)
    if err != nil {
        return nil, err
    }
    defer file.Close()

    //使用goquery解析HTML文件
    doc, err := goquery.NewDocumentFromReader(file)
    if err != nil {
        return nil, err
    }

    //获取所有链接
    links := make([]string, 0)
    doc.Find("a").Each(func(i int, s *goquery.Selection) {
        link, _ := s.Attr("href")
        links = append(links, link)
    })

    return links, nil
}

func main() {
    filename := "path/to/file.html"

    //获取HTML文件中的所有链接
    links, err := getLinks(filename)
    if err != nil {
        log.Fatal(err)
    }

    //输出链接
    for _, link := range links {
        println(link)
    }
}

Dalam kod di atas, kami menggunakan pembolehubah "htmlStr" untuk menyimpan sampel rentetan HTML yang mengandungi watak istimewa. Kami kemudian menggunakan fungsi "EscapeString" daripada pakej "html" untuk menukar aksara khas ke dalam urutan melarikan diri dan menyimpan hasilnya dalam pembolehubah "melarikan diri". Akhir sekali, kami mengeluarkan rentetan HTML yang ditukar.

Ringkasan

Dalam artikel ini, kami memperkenalkan cara menyalin fail HTML dari satu tempat ke tempat lain menggunakan bahasa Go dan meneroka beberapa isu penukaran HTML biasa. Kami menunjukkan cara menggunakan pakej "goquery" untuk mengekstrak pautan daripada fail HTML dan cara menggunakan pakej "html" untuk menukar aksara khas dalam fail HTML kepada urutan melarikan diri. Melalui contoh ini, anda boleh lebih memahami cara fail HTML diproses di Golang dan menggunakannya dalam projek anda.

Atas ialah kandungan terperinci golang transfer html. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Pembinaan projek GolangArtikel seterusnya:Pembinaan projek Golang