golang语言chromedp包介绍以及如何弹出浏览器进行调试

Golang使用selenium、chromedp操作Chrome Golang使用selenium golang中使用selenium,具体可以参考这篇文章,不是很全,但是基础的差不多都有 地址:https://bbs.huaweicloud.com/blogs/172024 这里补充说一点,由于使用selenium,浏览器会出现”Chrome正受到测试软件的控制“, 对于有点强迫症的我来说,看着非常不舒服!!!! 可以通过下面这个参数来取消掉这个提示 func main() { //1.开启selenium服务 ops := []s.. 阅读详情

golang语言chromedp包介绍以及如何弹出浏览器进行调试

背景

想要做一个定时自动发送微博的程序,微博API提供了一个接口statuses/share,但是该接口需要注册微博开发者并审核通过(需要有app或者网站)微博应用审核产品指南。因此通过搜索引擎了解到可以通过程序控制chrome浏览器来实现,在GitHub上找到了chromedp这个包,但是相关文档比较少。这里把我了解和学习这个包,并实现自动化发送微博的过程记录并分享出来。

关于chromedp

GitHub地址:https://github.com/chromedp/chromedp

安装chromedp

go get -u github.com/chromedp/chromedp

使用例子

关于如何使用官方还有一个项目专门来写了几个例子来帮助大家入门,第一次接触可以先用官方的例子试一下。但是这里要注意官方的例子中使用的好多都是在国内被屏蔽的网站,地址:https://github.com/chromedp/examples

chrome普通模式与chrome headless模式的区别

普通模式

普通模式会在电脑上弹出浏览器窗口,可以在浏览器中看到代码执行的效果,调用完成之后需要关闭掉浏览器。

chrome headless模式

chrome headless模式不会弹出浏览器窗口,并且你多次go run main.go的时候, go 代码运行中断导致后台chrome headless不能退出,导致第二次本地调试失败, 此时解决方案就是自己手动结束chrome进程。
因此在调试go代码的时候不建议使用chrome headless模式。

如何使用chrome普通模式

chromedp包默认情况下使用chrome headless模式,所以需要在禁用该模式才会弹出你本地的chrome浏览器。

// Command click is a chromedp example demonstrating how to use a selector to
// click on an element.
package main

import (
	"context"
	"log"
	"time"

	"github.com/chromedp/chromedp"
)

func main() {

    // 禁用chrome headless
	opts := append(chromedp.DefaultExecAllocatorOptions[:],
		chromedp.Flag("headless", false),
	)
	allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
	defer cancel()

	// create chrome instance
	ctx, cancel := chromedp.NewContext(
		allocCtx,
		chromedp.WithLogf(log.Printf),
	)
	defer cancel()

	// create a timeout
	ctx, cancel = context.WithTimeout(ctx, 15*time.Second)
	defer cancel()

	// navigate to a page, wait for an element, click
	var example string
	err := chromedp.Run(ctx,
		chromedp.Navigate(`https://golang.org/pkg/time/`),
		// wait for footer element is visible (ie, page is loaded)
		chromedp.WaitVisible(`body > footer`),
		// find and click "Expand All" link
		chromedp.Click(`#pkg-examples > div`, chromedp.NodeVisible),
		// retrieve the value of the textarea
		chromedp.Value(`#example_After .play .input textarea`, &example),
	)
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("Go's time.After example:\n%s", example)
}

参考文章

Golang爬虫终极杀器——Chromedp让你成为二维码登陆终结者(教程) chromedp是一个更快、更简单的Golang库用于调用支持Chrome DevTools协议的浏览器,同时不需要额外的依赖,文章记录了使用chromedp进行二维码登陆的过程 阅读详情

相关推荐

Chromedp 实战:巧妙规避自动化检测的三大策略

本文详细介绍了使用Chromedp进行网页数据采集时,如何有效绕过自动化检测的三大实战策略。通过禁用WebDriver标志、深入Blink引擎层面移除自动化特性,以及模拟人类随机操作行为,帮助开发者构建更稳定、更隐蔽的爬虫程序,显著提升数据采集成功率。

weixin_29200741的博客 551

「Go开源包」chromedp:一个基于Chrome DevTools协议的库,支持数据采集、截取网页长图

chromedp基于Chrome DevTool协议实现。可以对网页内容进行采集、模拟点击、提交数据、将网页内容转换成pdf、抓取网页长图等功能。

Ch3nnn的博客 3844

绕开网站反爬虫原理及实战

在本文中,我首先对网站常用的反爬虫和反自动化技术做了一个梳理, 并对可能能够绕过这些反爬技术的开源库chromedp所使用的技术分拆做一个介绍, 最后利用chromedp库对一个测试网站做了爬虫测试, 并利用chromedp库绕开了爬虫限制,成功通过程序自动获取到信息。在测试过程中,顺便对chromedp库经常使用的一些API做了一些调用尝试。

这里是二进制空间安全博客,主要分享网络安全、信息安全和数据安全相关的技术文章。内容覆盖编程语言、基础知识、漏洞分析、攻防技巧、安全工具使用、最佳实践等安全技术主题。 2738

【Golang源码学习】chromedp篇

chromedp源码阅读

qq_40119224的博客 1456

用Chromedp写爬虫总被网站识别?试试这3个隐藏WebDriver的实战技巧

本文详细介绍了使用Chromedp编写爬虫时如何避免被网站识别的3个实战技巧,包括破解核心防御机制、指纹伪装进阶技巧和行为模式仿真策略。通过优化WebDriver标识、Canvas指纹和操作行为,有效提升爬虫的隐蔽性,帮助开发者绕过自动化检测系统。

weixin_33309048的博客 345

Go语言驱动Selenium:高性能Web自动化实战指南

Web自动化测试与数据采集是现代软件开发与数据分析中的关键技术,其核心原理是通过程序控制浏览器模拟真实用户操作。Selenium作为行业标准工具,通过WebDriver协议实现了跨浏览器的自动化控制。传统方案多基于Python,但在处理大规模并发任务时面临性能瓶颈。Go语言凭借其原生的goroutine并发模型和卓越的执行效率,为高性能浏览器自动化提供了新的解决方案。通过tebeka/selenium等成熟库,开发者能够将Go在并发处理和资源管理上的优势无缝应用于Web自动化领域,显著提升分布式爬虫、大规模

cqwf95925的博客 425

golang操作chromedp模拟浏览器基础入门

源起 最近有个项目要用到headless,以前用过python Selenium。最近想试下go版本的。但是刚开始时候,发现一个坑。网上有部分代码是老版本的chromedp。新版本不通用,就记录下我的学习过程 chromedp 是什么? 广泛使用的headless browser解决方案PhantomJS已经宣布不再继续维护,转而推荐使用headless chrome 那么headless chrome究竟是什么呢,Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器

渗透测试教程 1万+

Go语言爬虫:chromedp 的详细使用

chromedp 是 Go 语言中无头浏览器自动化的终极利器。它能驱动真实的 Chrome 浏览器,处理 JavaScript 渲染、复杂交互和反爬虫机制

数据知道的博客 4492

Chrome浏览器控制Go语言库

chromedp是一个用于控制Chrome 浏览器的 Go 语言库。它提供了一种自动化操作浏览器的方式,能够在浏览器中执行各种任务,如加载网页、点击按钮、填写表单、执行 JavaScript 代码等。这使得它在网页自动化测试、数据采集、网页性能评估等诸多领域有着广泛的应用。可以配置headless模式。

weixin_43156294的博客 2690

Stanford CS230深度学习(一)

斯坦福CS230可以作为深度学习的入门课,最近我也在跟着看视频、完成编程作业。首先列出使用的资源链接,然后给出第一课的理解和编程作业的代码。 所有资料如下: 一、课程连接: b站课堂讲授版:Stanford CS230(吴恩达 深度学习 Deep Learning | Autumn 2018)(中英双字幕) (一共10个视频,每周一个,但是每个视频对应下面的配套视频较多) Coursera配套视...

weixin_44750583的博客 2381

yakit 验证码识别 进行webfuzzer

在渗透测试的过程中,我们可能需要对管理员密码进行枚举,或者密码喷洒的时候,遇到验证码就很烦。有没有自动化识别验证码的办法呢?有的,兄弟,有的。验证码的识别率很低,captcha-killer-modified对算术验证码识别正确率非常低,还会识别成乱七八糟的结果,这就非常麻烦。因为你不知道到底是验证码不对,还是密码不对。这是 ddddocr 识别率的问题,如果师傅们找到准确度更高的工具,完全可以替换上去。

Arkmornings的博客 1664

go实现网页截图

1. chromedp 是什么? 而最近广泛使用的headless browser解决方案PhantomJS已经宣布不再继续维护,转而推荐使用headless chrome. 那么headless chrome究竟是什么呢,Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行您的程序. 简而言之,除了没有图形界面,headless chrome具有所有现代浏览器的特性,可以像在其他现代浏览器里一样渲染目标网页,并能

Eric 2688

别再乱拖了!Godot 4.x 场景编辑器的7个隐藏操作技巧(附快捷键清单)

本文揭示了Godot 4.x场景编辑器的7个隐藏操作技巧,包括智能对齐、轴心点应用、多节点批量操作等,帮助开发者提升游戏开发效率。特别介绍了坐标系切换和自定义快捷键等实用功能,适用于处理复杂场景和团队协作。

weixin_29534421的博客 361

chromedp模拟浏览器获取数据

go语言模拟浏览器进行爬虫,包括翻页、点击、抓取内容的操作

qq_37575994的博客 1691

Mathcad在LLC谐振变换器设计中的公式推导实战

本文通过Mathcad软件,详细演示了LLC谐振变换器设计的核心公式推导实战。文章阐述了如何利用Mathcad作为“会思考的草稿纸”,从定义基本参数、应用基波近似法(FHA)模型,到逐步推导电压增益公式及确定工作边界频率(fmin, fmax),并展示了如何通过动态参数扫描进行优化设计,帮助电源工程师高效、直观地完成理论计算,为后续仿真与实现奠定坚实基础。

q1w3e5r7t9y的博客 294

零基础学习CANoe Panel(17)—— Panel CAPL Function

CANoe内置了几个CAPLFunction,允许我们在CAPL运行时动态的更改Panel控件的属性,比如打开某个panel,禁用某个控件,更改控件颜色等。

蚂蚁小兵 3508

chromedp抓取数据,从0开始踩坑记录

chromedp抓取youtube、ins、tiktok数据,从0开始踩坑记录。文中几乎会涉及到所有chromedp的函数使用场景和特性&&各种奇奇怪怪的bug

pt13558684045的博客 3166

别再用Selenium被秒封了!2026最新反爬全突破+动态渲染实战(通过率99%)

做爬虫的同学,肯定都有过这样的经历:遇到一个纯前端渲染的网站,Requests抓包只能拿到一堆空的div标签,所有数据都是JS动态生成的。这时候你想到了Selenium,结果刚打开浏览器,网站直接跳出来一个"检测到机器人访问"的页面,或者直接返回403。我之前做一个跨境电商的爬虫项目,就踩了这个大坑。一开始用默认的Selenium ChromeDriver,10次请求有9次被封,通过率不到10%。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1383

chromedp入门

chromedp是什么?chromedp是go写的,支持Chrome DevTools Protocol 的一个驱动浏览器的库。并且它不需要依赖其他的外界服务(比如 Selenium 和...

轩脉刃的刀光剑影 6425

《网络安全自学教程》- Windows安全机制:安全标识符,身份鉴别和访问控制

这篇文章详细介绍Windows和Linux如何标识用户,如何根据标识验证用户身份,如何根据用户身份做访问控制。

wangyuxiang946的博客 1万+

【RT-DETR有效改进】利用MobileNetV3替换Backbone(轻量化网络结构,提点)

本文给大家带来的改进机制是,其主要改进思想集中在结合硬件感知的网络架构搜索(NAS)和NetAdapt算法,以优化移动设备CPU上的性能。它采用了新颖的架构设计,包括反转残差结构和线性瓶颈层,以及新的高效分割解码器Lite Reduced Atrous Spatial Pyramid Pooling(LR-ASPP),以提升在移动分类、检测和分割任务上的表现。实验表明,MobileNets在资源和准确性的权衡方面表现出色,并在多种应用(如对象检测、细粒度分类、面部属性识别和大规模地理定位)中展现了其有效性。

Snu77的博客 2747

使用Go和chromedp库实现代理访问DingTalk网站并提取视频URL

Go语言提供了一些强大的库,其中之一就是chromedp,它是一个基于Chrome DevTools Protocol的库,用于控制和操作Chrome浏览器。在Web开发中,经常需要使用代理来进行网络访问,以获取更多的信息或者实现一些特殊的需求。本文将介绍如何使用Go编程语言和chromedp库,通过代理服务器访问DingTalk网站并提取其中的视频URL。总体而言,Go语言和chromedp库为开发者提供了强大的工具,使得Web爬虫和自动化操作变得更加容易实现。安装chromedp库。

D0126_的博客 1572

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

谷歌浏览器爬虫(chromedp)页面请求超时的解决方案

模式(即无头模式,无GUI界面模式)运行,发现亚马逊一个页面请求,页面一直未加载完成,卡死了。服务,专门用来做浏览器爬虫。服务器上部署了谷歌浏览器以。

青哥的博客 3646

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

使用 Chromedp 监听网页请求和响应

ChromeDP 是一个 Go 语言实现的库,它提供了无头浏览器的操作和控制能力,可以用来进行网页自动化、爬虫和测试等工作。通过 ChromeDP,我们可以编程方式监听网页上的各种事件,包括网络请求和响应。

Clown95 1894

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

golang使用chromedp生成滚动更新页面的PDF

golang使用chromedp实现懒加载页面生成PDF

BLF2 2227

探索`chromedp`:无头浏览器编程的利器

探索chromedp:无头浏览器编程的利器 exampleschromedp code examples.项目地址:https://gitcode.com/gh_mirrors/examples12/examples chromedp是一个高效且易于使用的Go语言库,用于控制Chrome或Chromium浏览器,实现自动化任务,如网页抓取、测试和数据提取等。本项目集合了一系列丰富的示例代码,旨在...

gitblog_00067的博客 867
上一篇: beego框架post参数默认长度限制64M
下一篇: Golang应用打包docker镜像并运行
姜红杰
博客等级 码龄10年 9粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值