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

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

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

4980閲覧

agouti でWebサイトへアクセスしようとすると invalid session id というエラーになる

jgvkmea

総合スコア25

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2020/08/29 16:02

#質問内容
Go言語で動的にサイトのスクレイピングを行おうと思い、
agouti を使ってサイトへアクセスしようと下記のようなコード(コード部に記載)を書いて実行したのですが一瞬だけブラウザが表示され、

ERRO[0001] failed to go login page: failed to navigate: request unsuccessful: invalid session id

というエラーが返ってきます。

このエラー内容で調べるとメモリ不足でこのエラーが出ることがあるということで、
ウィンドウサイズを変更するオプションも試したのですがまったく同じエラーが返ってきます。
一瞬表示されるブラウザは小さくなっていました。

どのように修正すればアクセスできるようになるでしょうか?
ご回答よろしくお願いいたします。

インストールしたもの

$ brew install chromedriver $ brew install selenium-server-standalone

#コード

go

1package main 2 3import ( 4 "github.com/sclevine/agouti" 5 "github.com/sirupsen/logrus" 6) 7 8const ( 9 url = "https://qiita.com/" 10) 11 12func main() { 13 logger := logrus.New() 14 15 driver := agouti.ChromeDriver() 16 defer driver.Stop() 17 err := driver.Start() 18 if err != nil { 19 logger.Errorf("failed to start driver: %v", err) 20 return 21 } 22 23 page, err := driver.NewPage() 24 if err != nil { 25 logger.Errorf("failed to create page: %v", err) 26 return 27 } 28 29 // ログインページに遷移する 30 if err = page.Navigate(url); err != nil { 31 logger.Errorf("failed to go login page: %v", err) 32 return 33 } 34} 35

環境

  • macOS:10.15.6
  • Go:1.14.7

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

go

1 driver := agouti.ChromeDriver() 2 defer driver.Stop() 3 err := driver.Start() 4 〜〜エラー処理〜〜 5

となっているところを

go

1 driver := agouti.ChromeDriver() 2 err := driver.Start() 3 〜〜エラー処理〜〜 4 defer driver.Stop() 5

startstopの順番を変えたところ無事に動きました。
こんなことで3、4時間溶かすなんて。。。

投稿2020/08/31 14:42

jgvkmea

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問