searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

golang爬虫的简单使用之二使用浏览器访问

2025-11-11 10:32:28
0
0

在爬取网址的过程中,经常会发现解析页面后,并没有得到想要的内容,这个时候大概就是因为页面内容如果仅仅是普通的curl获取,是无法得到跟浏览器访问一样的效果.

这个时候可能就要用到浏览器访问网址,在golang中有一个很简单的库:go-rod,可以轻松实现通过浏览器访问指定网址.

// 1. 先获取 go get -u github.com/go-rod/rod

// 2. 常见的使用操作
// 配置 rodLauncher
rodLauncher = launcher.New().Leakless(false).
		NoSandbox(true).
		Headless(true).
		Bin("/bin/google-chrome").
		Set("disable-infobars").
		Set("disable-extensions").
		Set("disable-web-security").
		Set("allow-running-insecure-content").
		Set("reduce-security-for-testing").
		Set("", "about:blank").
		Set("user-agent", "user-agent-flag").
		Set("force-enable-ipv6")

// 创建一个新的浏览器实例,配置无痕模式
rodBrowser = rod.New().Logger(utils.LoggerQuiet).Trace(false).NoDefaultDevice().ControlURL(rodLauncher.MustLaunch())


rodBrowser.Connect()

rodPool := rod.NewPagePool("10")
// Create a page if needed
create := func() *rod.Page {
	// We use MustIncognito to isolate pages with each other
	page := rodBrowser.MustIncognito().MustPage()
	return page
}
page := rodPool.Get(rodCreate)

page.Navigate("http://www.baidu.com/")

body, err := page.HTML()

这样就得到了页面源码,然后就可以采用之前的页面解析dom 的方式获取说需要的元素了

 

0条评论
作者已关闭评论
杨晔
3文章数
0粉丝数
杨晔
3 文章 | 0 粉丝
杨晔
3文章数
0粉丝数
杨晔
3 文章 | 0 粉丝
原创

golang爬虫的简单使用之二使用浏览器访问

2025-11-11 10:32:28
0
0

在爬取网址的过程中,经常会发现解析页面后,并没有得到想要的内容,这个时候大概就是因为页面内容如果仅仅是普通的curl获取,是无法得到跟浏览器访问一样的效果.

这个时候可能就要用到浏览器访问网址,在golang中有一个很简单的库:go-rod,可以轻松实现通过浏览器访问指定网址.

// 1. 先获取 go get -u github.com/go-rod/rod

// 2. 常见的使用操作
// 配置 rodLauncher
rodLauncher = launcher.New().Leakless(false).
		NoSandbox(true).
		Headless(true).
		Bin("/bin/google-chrome").
		Set("disable-infobars").
		Set("disable-extensions").
		Set("disable-web-security").
		Set("allow-running-insecure-content").
		Set("reduce-security-for-testing").
		Set("", "about:blank").
		Set("user-agent", "user-agent-flag").
		Set("force-enable-ipv6")

// 创建一个新的浏览器实例,配置无痕模式
rodBrowser = rod.New().Logger(utils.LoggerQuiet).Trace(false).NoDefaultDevice().ControlURL(rodLauncher.MustLaunch())


rodBrowser.Connect()

rodPool := rod.NewPagePool("10")
// Create a page if needed
create := func() *rod.Page {
	// We use MustIncognito to isolate pages with each other
	page := rodBrowser.MustIncognito().MustPage()
	return page
}
page := rodPool.Get(rodCreate)

page.Navigate("http://www.baidu.com/")

body, err := page.HTML()

这样就得到了页面源码,然后就可以采用之前的页面解析dom 的方式获取说需要的元素了

 

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0