以下を参考にしてサンプル画像大量ゲットできました
google image downloadが動かなかったのでその対応
よーしおじさん教師データつくっちゃうぞ、100件だと心もとないから1000件くらい画像ほしいな
ということでデバッグしましたしています
#だめぽ
とりあえずきちんとデバッグしてみたんですが、この問題はいくつかの問題が重なっていて
- 普通に読みに行くのと、chromedriverで取得するのとでは取得できるhtmlのエンコード状態が異なることによるエラー
- 100件以下の場合、101件以上の場合で挙動を分けることで解決
- chromedriverでchromeを自動操縦するとき、画面をスクロールさせてどんどん新しい画像を読んでいくんだけど、3回めのlazy loadで「結果をもっと表示」ボタンが出る。このボタンを押すコードがあるがgoogle側の仕様変更により動作していなかった
- DOM要素の指定を適切にすることで解決
- 画像検索のHTMLには検索結果の諸情報がjavascriptの配列の形式で格納されており、google images download はそれをjsonデコードしているが、google側の仕様(変更かどうかわからんが)、lazy loadを行った際の元画像URLはjs上で管理され、HTMLにはサムネイルしか描写されないので、最大限にlazy loadを行ったところで、HTMLソースだけを解析しても最初の100件ぶんしか元画像は取れない
- やろうとすればできそうな気もするけど、相当大変そう
ということで、なんか無理っぽいという結論がでたのでいったんペンディングにします 101件以上ほしい場合は他をあたったほうがよさそうですね
とりま、詳しいことがわかっただけでもよしとしましょう