В Golang для распарсивания ссылки можно использовать пакет net/url, а не net/html. net/url предоставляет функционал для разбора и манипуляций с URL-адресами.
Вот пример, демонстрирующий, как распарсить ссылку при помощи net/url:
package main import ( "fmt" "net/url" ) func main() { rawURL := "https://www.example.com/path?query=example" // Парсинг URL-адреса parsedURL, err := url.Parse(rawURL) if err != nil { fmt.Println("Ошибка при парсинге URL:", err) return } // Доступ к различным компонентам URL fmt.Println("Схема:", parsedURL.Scheme) fmt.Println("Хост:", parsedURL.Host) fmt.Println("Путь:", parsedURL.Path) // Получение значений параметров запроса queryParams := parsedURL.Query() fmt.Println("Значение параметра 'query':", queryParams.Get("query")) // Изменение значения параметра запроса queryParams.Set("query", "new_value") fmt.Println("Изменение параметра 'query':", queryParams.Encode()) // Приведение URL-адреса к строковому представлению fmt.Println("Строковое представление URL:", parsedURL.String()) }
В результате выполнения кода вы увидите следующий вывод:
Схема: https Хост: www.example.com Путь: /path Значение параметра 'query': example Изменение параметра 'query': query=new_value Строковое представление URL: https://www.example.com/path?query=new_value
Обратите внимание на:
1. Использование функции url.Parse
для парсинга URL-адреса из строки.
2. Обращение к различным компонентам URL через соответствующие поля в объекте url.URL
.
3. Использование метода Query
для получения карты с параметрами запроса.
4. Использование метода Set
для изменения значения параметра запроса.
5. Использование метода Encode
для преобразования карты параметров обратно в строку.
6. Использование метода String
для получения строкового представления URL-адреса.