質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.19%

scriptを読み込んだ後のhtmlを並列処理で取得する方法を教えて頂けませんでしょうか?

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 507

Palo_Punte

score 21

scriptを読み込んだ後のhtmlを並列処理で取得する方法を教えて頂けないでしょうか?
下記のコードはそれぞれのurlに対しdriverを立ち上げpageを作成しています。ただこれですと何もエラーもなく止まって動かなくなってしまいできません。
driver.Start()のみmain()に移送させた場合、driver.Start()とpage, err := driver.NewPage(agouti.Browser("chrome"))の処理のみmain()に移動させてみてもできませんでした。
scriptを読み込んだ後のhtlmlを並列で取得するもっと負荷の少ないやり方があればそちらも教えて頂けませんでしょうか?
よろしくお願いいたします。

package main

import (
    略
)

func main() {
    slice_huga := [] string{"url_1", "url_2", "url_3"} //3つのurl。実際はhttp://~
    for _, url := range slice_huga {
        go hoge(url)
    }
    time.Sleep(time.Second * 30)
}

func hoge(url string){
    driver := agouti.ChromeDriver(
        agouti.ChromeOptions("args", []string{
            "--disable-gpu",
            "--headless",
        }),
    )

    err := driver.Start()
    if err != nil {
        fmt.Println(err)
    }
    defer driver.Stop()

    page, err := driver.NewPage(agouti.Browser("chrome"))
    if err != nil {
        fmt.Println(err)
    }

    err := page.Navigate(url)
    if err != nil {
        fmt.Println(err)
    }

    getSource, err := page.HTML()
    if err != nil {
        fmt.Println(err)
    }

    readerCurContents := strings.NewReader(getSource)
    doc, err := goquery.NewDocumentFromReader(readerCurContents)
    if err != nil {
        fmt.Println(err)
    }

    doc.Find(site.Selector).Each(func(index int,selection *goquery.Selection){
        (略)
    })
}


go 1.13
ChromeDriver 83.0.4103.39

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • Kenji.Noguchi

    2020/06/13 03:12

    "--disable-gpu", "--headless"のオプションを削って実行して、何が起きているか確認してみては?

    キャンセル

  • Palo_Punte

    2020/06/14 10:46

    記載していなかったのですがcentosで実行をしていました。
    この場合ですと見れないのですよね?

    キャンセル

  • nobonobo

    2020/06/17 08:01

    容易に再現可能にするため可能な限りコードを省略しないでください。
    コメントの指示通り確認してみての結果などを追記して下さい。
    「見れないのですよね?」ではなく見れたのか見れなかったのかが知りたいです。
    ダメだったのならその時の情報をください。

    キャンセル

  • nobonobo

    2020/06/17 08:15

    もしかしてCentOSサーバー?
    CentOSにはデスクトップ版もあるのでまずはデスクトップ環境で試されてみるなどをお勧めします。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.19%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • Goに関する質問
  • scriptを読み込んだ後のhtmlを並列処理で取得する方法を教えて頂けませんでしょうか?