【问题标题】:Golang http.Get block resourcesGolang http.获取块资源
【发布时间】:2016-07-28 10:47:08
【问题描述】:

如何使用 Golang 的 net/http 的 http.Get(url string) 但阻止某些 url 和资源的请求?

例如

http.Get("https://google.com") // But somehow block the main CSS file.

【问题讨论】:

  • http.Get 函数只获取一个资源。对于https://google.com/,CSS 在页面上是内联的。它不在单独的资源或文件中。

标签: go filter get resources


【解决方案1】:

您不需要阻止 URL 和资源,因为 net/http Get() 不会自动执行包含的链接或资源的获取。

您可能会将其与浏览器获取 URL 的方式相混淆。浏览器会发出一个请求,然后跟进获取所有资源(Javascript/CSS/images/videos 等)但是 Go 的 net/http 请求级别要低得多——它更像 curl fetch——默认情况下它会遵循重定向, 但否则它只会获取对 GET 请求的单个响应。您可以认为发出调用 `http.Get("https://google.com") 的结果类似于您在浏览器中看到的页面源(加上 HTTP 标头和响应代码)。此响应可能会包含许多其他链接和资源的 URL - 如果您愿意,您可以解析它们并请求其中的部分或全部(省略您想要“阻止”的内容),例如低级 Web爬虫可以。

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 2013-12-09
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2017-01-18
    • 2019-03-02
    相关资源
    最近更新 更多