現在のページのURLを取得する方法
2672 ワード
にprevious article , 我々は、シンプルなアプリケーションとオープンGoogleを開発しました.CMOSMapによるCOMこの記事では、ページとURLを扱うために、chromedpの機能の一つを見ていきます.
開発者がそれを行うために使用することを決めた方法は、Golang開発者と共に非常に人気のある方法であり、変数の参照を関数に渡します.例えば、囲碁ライブラリでは同じパターンがたくさん見られます.GORM また、同じパターンを使用します.
今日のシナリオでは、chromedP Githubページを開き、リポジトリ内のファイルの一つに移動し、ページのURLを印刷します.シンプルで簡単!だから始めましょう!
そのためには、クリックしたい要素を選択する必要があります.我々は手動で、自動的に行うものを作りたいと思います.これは、utilound testという名前のファイルを開きたい場合です.最初に、我々はURLに行く必要がありますhttps://github.com/chromedp/chromedp 次に、リスト内のファイルを見つけ、それをクリックします.ページ内の要素を見つけるにはCSS Selectors .
開発者がそれを行うために使用することを決めた方法は、Golang開発者と共に非常に人気のある方法であり、変数の参照を関数に渡します.例えば、囲碁ライブラリでは同じパターンがたくさん見られます.GORM また、同じパターンを使用します.
今日のシナリオでは、chromedP Githubページを開き、リポジトリ内のファイルの一つに移動し、ページのURLを印刷します.シンプルで簡単!だから始めましょう!
そのためには、クリックしたい要素を選択する必要があります.我々は手動で、自動的に行うものを作りたいと思います.これは、utilound testという名前のファイルを開きたい場合です.最初に、我々はURLに行く必要がありますhttps://github.com/chromedp/chromedp 次に、リスト内のファイルを見つけ、それをクリックします.ページ内の要素を見つけるにはCSS Selectors .
// our selector to find the file inside the page.
selector := "a[title='util_test.go']"
tasks := chromedp.Tasks{
// go to the page
chromedp.Navigate("https://github.com/chromedp/chromedp"),
// wait until the elemnt is visible and available inside the page
chromedp.WaitEnabled(selector),
// do a click on it
chromedp.Click(selector),
}
だから、私たちはすでにページのURLを取得している残っている唯一のステップを望んでいるページに移動します.この目的のために、文字列変数を定義し、chromedpの位置関数に渡します.var u string
...
chromedp.Location(&u),
そして、完全なコードです.package main
import (
"context"
"fmt"
"github.com/chromedp/chromedp"
)
func main() {
var u string
opts := append(
// select all the elements after the third element
chromedp.DefaultExecAllocatorOptions[3:],
chromedp.NoFirstRun,
chromedp.NoDefaultBrowserCheck,
)
// create chromedp's context
parentCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
defer cancel()
selector := "a[title='util_test.go']"
tasks := chromedp.Tasks{
chromedp.Navigate("https://github.com/chromedp/chromedp"),
chromedp.WaitEnabled(selector),
chromedp.Click(selector),
chromedp.Location(&u),
}
ctx, cancel := chromedp.NewContext(parentCtx)
defer cancel()
if err := chromedp.Run(ctx, tasks); err != nil {
panic(err)
}
fmt.Printf("URL => %s\n", u)
}
出力は:URL => https://github.com/chromedp/chromedp/blob/master/util_test.go
Reference
この問題について(現在のページのURLを取得する方法), 我々は、より多くの情報をここで見つけました https://dev.to/devmarkpro/chromedp-how-to-get-the-url-of-the-current-page-2lk8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol