首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ChromeDP/Go登录谷歌( YouTube )?

如何使用ChromeDP/Go登录谷歌( YouTube )?
EN

Stack Overflow用户
提问于 2021-10-04 03:10:17
回答 1查看 102关注 0票数 0

我正试着登录Youtube,它会重定向到accounts.google.com/ServiceLogin?service=youtube...使用chromedp。由于某些原因,它尝试从该页面检索任何内容时都会超时。大多数选择器都有随机生成的类,但这不应该阻止获取正文。屏幕截图显示了登录页面,因此它可以正确导航到那里,但在页面上找不到任何东西。有iframe,但登录表单/输入不在其中,并且找不到#identifierId

下面是一个代码片段:

代码语言:javascript
复制
func main() {
    // create chrome instance
    var buf []byte
    ctx, cancel := chromedp.NewContext(
        context.Background(),
        // chromedp.WithDebugf(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 u string
    err := chromedp.Run(ctx,
        chromedp.Navigate(`https://youtube.com`),
        chromedp.Click(`#buttons > ytd-button-renderer > a`),
        chromedp.SendKeys(`#identifierId`, "bobboshmo@gmail.com", chromedp.ByID),
        chromedp.Location(&u),
    )
    if err != nil {
        log.Fatal(err)
    }
    log.Printf(u)

    // capture entire browser viewport, returning png with quality=90
    if err := chromedp.Run(ctx, fullScreenshot(u, 90, &buf)); err != nil {
        log.Fatal(err)
    }
    if err := ioutil.WriteFile("fullScreenshot.png", buf, 0o644); err != nil {
        log.Fatal(err)
    }

}

func fullScreenshot(urlstr string, quality int, res *[]byte) chromedp.Tasks {
    return chromedp.Tasks{
        chromedp.Navigate(urlstr),
        chromedp.FullScreenshot(res, quality),
    }
}
EN

回答 1

Stack Overflow用户

发布于 2021-10-04 21:59:55

事实证明,Google帐户页面根据User-Agent的不同而响应不同,所以当我浏览和抓取xpath或选择器时,它们与我的go程序使用的不同。通过在开始时将相同的用户代理添加到Run中修复:

代码语言:javascript
复制
emulation.SetUserAgentOverride(`Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Mobile Safari/537.36`),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69430530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档