亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

返回 503 的 http 請求

返回 503 的 http 請求

Go
慕少森 2022-08-09 20:14:23
為什么 Go 中的 http 請求會返回<html><body><h1>503</h1></body></html>但我可以毫無問題地卷曲網址/數據。例如卷曲 https://www.elastic.co/downloads/elasticsearch示例代碼位:func main() {    url := "https://www.elastic.co/downloads/elasticsearch"    data := DownloadData(url)    fmt.Println(data)}func DownloadData(url string) string {    response, err := http.Get(url)    if err != nil {        log.Fatal(err)    }    defer response.Body.Close()    data, err := ioutil.ReadAll(response.Body)    if err != nil {        log.Fatal(err)    }    dir := string(data)    return dir}
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

因此,elastic.co 可能正在檢查用戶代理以阻止抓取程序抓取他們的網站。一旦沒有用戶代理標頭或標頭暗示您正在自動執行流量,他們的機器人檢測系統就會啟動,您將獲得503。在您的代碼下方,使用 Firefox 用戶代理的示例。一旦你運行它,你會得到像卷曲一樣的身體。


package main


import (

    "fmt"

    "io/ioutil"

    "log"

    "net/http"

)


func main() {


    url := "https://elastic.co/downloads/elasticsearch,"

    data := DownloadData(url)

    fmt.Println(data)


}


func DownloadData(url string) string {


    client := &http.Client{}

    request, err := http.NewRequest("GET", url, nil)


    if err != nil {

        log.Fatalln(err)

    }

    request.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0")

    response, err := client.Do(request)

    if err != nil {

        log.Fatal(err)

    }

    defer response.Body.Close()


    data, err := ioutil.ReadAll(response.Body)

    if err != nil {

        log.Fatal(err)

    }

    dir := string(data)


    return dir

}


查看完整回答
反對 回復 2022-08-09
  • 1 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號