Получить html сайта

104
06 февраля 2021, 10:00

На Go написал функцию для того чтобы получать html сайтов по url:

func HTTPGet(url string, timeout time.Duration) (content []byte, err error) {
    if strings.Index(url, "www.") == -1 {
        url = strings.Replace(url, "http://", "http://www.", -1)
        url = strings.Replace(url, "https://", "https://www.", -1)
    }
    tr := &http.Transport{
        TLSClientConfig: &tls.Config{
            InsecureSkipVerify:          true,
            PreferServerCipherSuites:    true,
            SessionTicketsDisabled:      true,
            DynamicRecordSizingDisabled: true,
        },
    }
    var netClient = &http.Client{
        Timeout:   timeout,
        Transport: tr,
    }
    response, err := netClient.Get(url)
    if response == nil {
        url = strings.Replace(url, "www.", "", -1)
        response, err = netClient.Get(url)
        if response == nil {
            return
        }
    }
    defer response.Body.Close()
    content, err = ioutil.ReadAll(response.Body)
    return
}

Большая часть сайтов отработала нормально, но есть сайты, которые, если в браузере руками вбивать, работают, но функция возвращает такие ошибки:

Error URL https://hollisterco.com err:Get https://www.hollisterco.com:read tcp 192.168.0.107:63431->104.81.103.80:443: wsarecv: An existing connection was forcibly closed by the remote host.

Error URL https://deepin.org err:Get https://www.deepin.org: 301 response missing Location header

Error URL http://tdscpc.gov.in err:Get https://www.tdscpc.gov.in/: 302 response missing Location header

Error URL https://alternate.de err:Get https://www.alternate.de: EOF

Как можно это поправить можно?

READ ALSO
Размер кнопки над ячейкой таблицы

Размер кнопки над ячейкой таблицы

Как задать кнопке такой же размер как и ячейке таблицы, но так, чтобы она изменяла свой размер при разных разрешениях монитора как и эта самая...

109
Передача коллекции коллекций в TextBlock

Передача коллекции коллекций в TextBlock

Я думаю название уже звучит глупо, но давайте разберемсяСуть такова, что мне в столбец DataGrid'а нужно передать коллекцию коллекций, но не просто...

97
Несколько Form и подключение к базе данных

Несколько Form и подключение к базе данных

В программе несколько форм и каждой так или иначе нужна БД (через класс посредник) для наполнения или записи полученных данных

100
OnCollisionEnter2D для наследника

OnCollisionEnter2D для наследника

У меня есть абстрактный класс:

95