相当于Go中的Python的HTML解析功能/模块?

时间:2013-09-03 03:45:22

标签: html xml go web-scraping

我现在正在学习Go自己,并坚持获取和解析HTML / XML。在Python中,我通常在进行网络抓取时编写以下代码:

from urllib.request import urlopen, Request
url = "http://stackoverflow.com/"
req = Request(url)
html = urlopen(req).read()

,然后我可以以stringbytes的形式获取原始HTML / XML并继续使用它。在Go中,我该如何应对?我希望得到的是原始HTML数据,它存储在string[]byte中(虽然它可以很容易地转换,但我不介意哪些可以获得)。我考虑使用gokogiri包在Go中进行网页抓取(不确定我最终会使用它!),但看起来它需要原始HTML文本才能使用它...

那么我怎样才能获得这样的对象?

或者有更好的方法在Go中进行网络抓取工作吗?

感谢。

1 个答案:

答案 0 :(得分:2)

来自Go http.Get Example

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    res, err := http.Get("http://www.google.com/robots.txt")
    if err != nil {
        log.Fatal(err)
    }
    robots, err := ioutil.ReadAll(res.Body)
    res.Body.Close()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%s", robots)
}

http://www.google.com/robots.txt的内容返回到字符串变量robots

对于XML解析,请查看 the Go encoding/xml package