Go語言通過http抓取網(wǎng)頁的方法
更新時間:2015年03月03日 11:33:55 作者:liuli
這篇文章主要介紹了Go語言通過http抓取網(wǎng)頁的方法,實例分析了Go語言通過http操作頁面的技巧,需要的朋友可以參考下
本文實例講述了Go語言通過http抓取網(wǎng)頁的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
復(fù)制代碼 代碼如下:
package main
import (
"fmt"
"log"
"net/http"
"net/url"
"io/ioutil"
)
//指定代理ip
func getTransportFieldURL(proxy_addr *string) (transport *http.Transport) {
url_i := url.URL{}
url_proxy, _ := url_i.Parse(*proxy_addr)
transport = &http.Transport{Proxy : http.ProxyURL(url_proxy)}
return
}
//從環(huán)境變量$http_proxy或$HTTP_PROXY中獲取HTTP代理地址
func getTransportFromEnvironment() (transport *http.Transport) {
transport = &http.Transport{Proxy : http.ProxyFromEnvironment}
return
}
func fetch(url , proxy_addr *string) (html string) {
transport := getTransportFieldURL(proxy_addr)
client := &http.Client{Transport : transport}
req, err := http.NewRequest("GET", *url, nil)
if err != nil {
log.Fatal(err.Error())
}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err.Error())
}
if resp.StatusCode == 200 {
robots, err := ioutil.ReadAll(resp.Body);
resp.Body.Close()
if err != nil {
log.Fatal(err.Error())
}
html = string(robots);
} else {
html = ""
}
return
}
func main() {
proxy_addr := "http://183.221.250.137:80/"
url := "http://www.baidu.com/s?wd=ip"
html := fetch(&url, &proxy_addr)
fmt.Println(html)
}
希望本文所述對大家的Go語言程序設(shè)計有所幫助。
相關(guān)文章
5個可以在Golang中優(yōu)化代碼以提高性能的技巧分享
作為一名軟件工程師,確保你的代碼高效且性能良好是非常重要的。本文主要和大家分享5個可以在Golang中優(yōu)化代碼以提高性能的技巧,希望對大家有所幫助2023-03-03在Go語言單元測試中解決HTTP網(wǎng)絡(luò)依賴問題
在 Go 語言中,我們需要找到一種可靠的方法來測試 HTTP 請求和響應(yīng),本文將探討在 Go 中進(jìn)行 HTTP 應(yīng)用測試時,如何解決應(yīng)用程序的依賴問題,以確保我們能夠編寫出可靠的測試用例,需要的朋友可以參考下2023-07-07gtoken替換jwt實現(xiàn)sso登錄的問題小結(jié)
這篇文章主要介紹了gtoken替換jwt實現(xiàn)sso登錄,主要介紹了替換jwt的原因分析及gtoken的優(yōu)勢,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05