html - 相当于Go中Python的HTML解析函数/模块?

标签 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 中进行网络抓取工作?

谢谢。

最佳答案

来自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 .

关于html - 相当于Go中Python的HTML解析函数/模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583742/

相关文章:

python - @api.constrains 在 Odoo 8 中如何工作?

xml - 有效的XPath不返回IMPORTXML公式的值

java - 将存储在 SQLite 数据库中的经度和纬度数据导出到文件以便可以通过网站将其导入 Google Map API 的最简单方法?

multithreading - 自同步 Goroutines 以死锁告终

html - 更多 HTML/CSS [min-]height 问题

css - float 图像伸出 div 底部

go - Go 结构的自定义类型强制执行(类型为任意)

go - 检查网络连接

html - 切换事件链接的 css 类

html - Bootstrap 3 中的 flex 底部阴影