Go 爬虫如何延迟获取页面内容

本贴最后更新于 567 天前,其中的信息可能已经时异事殊

闲来无事,想整个爬虫爬漫画看:http://www.pufei8.com/manhua/419/376901.html

爬到的内容一直是 Loading 页面,而不是我要的带漫画的页面
Loading:
image.png
我要的:
image.png
附源码:

package main

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

func HttpGet2(url string) (result string, err error) {
	log.Println(url)
	resp, err := http.Get(url)
	if err != nil {
		return result, err
	}

	defer resp.Body.Close()

	time.Sleep(time.Second * 1000)
	// 循环读取 网页数据, 传出给调用者
	buf := make([]byte, 4096)
	for {
		n, err := resp.Body.Read(buf)
		if n == 0 {
			fmt.Println("读取网页完成")
			break
		}
		if err != nil && err != io.EOF {
			return result, err
		}
		// 累加每一次循环读到的 buf 数据,存入result 一次性返回。
		result += string(buf[:n])
	}
	return
}

func main() {
	v := "http://www.pufei8.com/manhua/419/373107.html?page=1"
	str, err := HttpGet2(v)
	log.Println(err)
	log.Println(str)
}
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    478 引用 • 1378 回帖 • 582 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    105 引用 • 272 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    3354 引用 • 16936 回帖 • 487 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...