urlinfo

package module
v0.0.0-...-6252948 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2018 License: MIT Imports: 9 Imported by: 0

README

Rich Content Info (URL info library)

Build Status GoDoc Coverage Status

package main

import (
	"encoding/json"
	"log"
	"os"

	"github.com/mdigger/urlinfo"
)

func main() {
	info := urlinfo.Get("https://www.youtube.com/watch?v=OHegEgC8uwY")
	enc := json.NewEncoder(os.Stdout)
	enc.SetIndent("", "    ")
	enc.Encode(info)
}

Output:

{
  "url": "https://www.youtube.com/watch?v=OHegEgC8uwY",
  "status": 200,
  "mediaType": "text/html; charset=utf-8",
  "title": "БГ - Время наебениться",
  "description": "Позвольте мне прервать ваши вечные споры, Позвольте расшатать скрепы и оковы. Время беспощадно, оно как волчица, Вот мы сидим здесь, а оно мчится. Ох бы жить...",
  "image": "https://i.ytimg.com/vi/OHegEgC8uwY/hqdefault.jpg",
  "keywords": [
    "БГ",
    "время",
    "наебениться",
    "Степанцов",
    "bg",
    "Аквариум",
    "бг аудио",
    "бг филми",
    "филми",
    "филм бг аудио",
    "филми бг аудио",
    "bg audio",
    "бг...",
    "бг субтитри",
    "филми бг субтитри",
    "бг музика",
    "бг песни",
    "маша и мечока",
    "мики маус",
    "гребенщиков",
    "аквариум",
    "город золотой"
  ],
  "type": "video",
  "video": "https://www.youtube.com/embed/OHegEgC8uwY",
  "site": "YouTube"
}

Documentation

Overview

Example
package main

import (
	"encoding/json"
	"os"

	"github.com/mdigger/urlinfo"
)

func main() {
	info := urlinfo.Get("https://edition.cnn.com/2018/08/11/politics/donald-trump-vacation-new-jersey/index.html")
	enc := json.NewEncoder(os.Stdout)
	enc.SetIndent("", "    ")
	enc.Encode(info)
}
Output:

{
	"url": "https://edition.cnn.com/2018/08/11/politics/donald-trump-vacation-new-jersey/index.html",
	"status": 200,
	"mediaType": "text/html; charset=utf-8",
	"title": "Peek inside Trump's total non-vacation in New Jersey",
	"description": "For President Donald Trump, the long-standing image of a leader in repose doesn't apply, at least in his own mind. In New Jersey this week, events were arranged to demonstrate his extended stay at a wooded golf resort was, in fact, work.",
	"author": "Kevin Liptak and Jeff Zeleny, CNN",
	"image": "https://cdn.cnn.com/cnnnext/dam/assets/170611140113-trump-golfing-super-tease.jpg",
	"keywords": [
		"politics"
	],
	"type": "article",
	"site": "CNN"
}

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	// UserAgent используется как строка с указанием названия веб-браузера.
	UserAgent = "mdigger/2.1"
	// ParseLimit накладывает ограничение на размер анализируемых данных. Слишком
	// большой размер избыточен, т.к. мы анализируем только заголовок HTML.
	ParseLimit = int64(64 << 10)
	// KeywordMaxLength ограничивает максимально допустимую длину ключевой фразы.
	KeywordMaxLength = 32
)

Functions

This section is empty.

Types

type Info

type Info struct {
	URL         string   `json:"url"`                   // ссылка
	Status      int      `json:"status"`                // статус ответа при обращении
	Length      int64    `json:"length,omitempty"`      // длина ответа
	ContentType string   `json:"mediaType,omitempty"`   // content-type
	Title       string   `json:"title,omitempty"`       // заголовок
	Description string   `json:"description,omitempty"` // краткое описание
	Author      string   `json:"author,omitempty"`      // автор
	Image       string   `json:"image,omitempty"`       // иллюстрация
	Keywords    []string `json:"keywords,omitempty"`    // список ключевых слов
	Type        string   `json:"type,omitempty"`        // тип содержимого
	Video       string   `json:"video,omitempty"`       // ссылка на видео
	Audio       string   `json:"audio,omitempty"`       // ссылка на звуковой файл
	Locale      string   `json:"locale,omitempty"`      // язык
	Site        string   `json:"site,omitempty"`        // название сайта
}

Info описывает информацию, возвращаемую после разбора ответа на HTTP-запрос.

func CtxGet

func CtxGet(ctx context.Context, client *http.Client, rawurl string) *Info

CtxGet возвращает информацию о странице с использованием указанного клиента и контекст. Если клиент не указан, то используется http.DefaultClient.

func Get

func Get(url string) *Info

Get возвращает информацию о странице. В случае неверного URL будет возвращен nil. Во всех остальных случаях будет возвращено описание, хотя бы с ошибкой.

func Parse

func Parse(resp *http.Response) *Info

Parse разбирает ответ на HTTP-запрос и на основании него отдает краткую сводную информацию о странице. В основном, конечно, она будет интересна и разнообразна для HTML-страниц, которые поддерживают теги для разных социальных сетей, типа Facebook и Twitter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL