Help us understand the problem. What is going on with this article?

google images download で101件以上画像を取得できない問題を調べた

以下を参考にしてサンプル画像大量ゲットできました

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件以上ほしい場合は他をあたったほうがよさそうですね

とりま、詳しいことがわかっただけでもよしとしましょう

kituneponyo
よわよわぷらぐらま いかに低い意識と技術でその場をどうにかごまかして乗り切るかばかり考えている(乗り切れない)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした