回答編集履歴

3 詳細に

unhappychoice

unhappychoice score 1505

2019/09/04 12:14  投稿

```python
for num in range(50): # 50回繰り返す
  # Webページ取得
  resp = requests.get(URL, timeout=1, headers=headers)
  # Web上の画像を取得
  imgs = soup.find_all("img") # ここでは20件しか表示されていない
  # imgsを保存
```
なので、当然その動作かと思います。
Google 画像検索のページはスクロールによって ajax で非同期に次のページを読み込んでいるようなので、スクロールしない限り20枚目以降の結果は取得できなさそうです。
が、そもそも画像検索に関してはAPIが用意されているので、スクレイピングよりそちらの利用を推奨します。
https://developers.google.com/custom-search/v1/overview
スクレイピングは API などが用意されていない等の理由でとる最後の手段という意味が強く、
デメリットも多いのでAPIがあるのであればそちらの利用を推奨します。
デメリット
#### デメリット
- 取得先の相手が望まない形のアクセスとなる
 - Sleepや適切なコードを書いても訴訟になったケースあり
- 壊れやすい
 - 相手先でHTMLの構造を変えられると容易に壊れる
- JavaScript やブラウザまでエミュレートすると動作が遅い
##### 取得先の相手が望まない形のアクセスとなる
- Sleepや適切なコードを書いても訴訟になったケースあり
##### 壊れやすい
   - 相手先でHTMLの構造を変えられると容易に壊れる
##### JavaScript やブラウザまでエミュレートすると動作が遅い
2 詳細に

unhappychoice

unhappychoice score 1505

2019/09/04 12:12  投稿

```python
for num in range(50): # 50回繰り返す
  # Webページ取得
  resp = requests.get(URL, timeout=1, headers=headers)
  # Web上の画像を取得
  imgs = soup.find_all("img") # ここでは20件しか表示されていない
  # imgsを保存
```
なので、当然その動作かと思います。
Google 画像検索のページはスクロールによって ajax で非同期に次のページを読み込んでいるようなので、スクロールしない限り20枚目以降の結果は取得できなさそうです。
が、そもそも画像検索に関してはAPIが用意されているので、スクレイピングよりそちらの利用を推奨します。
https://developers.google.com/custom-search/v1/overview
https://developers.google.com/custom-search/v1/overview
スクレイピングは API などが用意されていない等の理由でとる最後の手段という意味が強く、
デメリットも多いのでAPIがあるのであればそちらの利用を推奨します。
デメリット
- 取得先の相手が望まない形のアクセスとなる
 - Sleepや適切なコードを書いても訴訟になったケースあり
- 壊れやすい
 - 相手先でHTMLの構造を変えられると容易に壊れる
- JavaScript やブラウザまでエミュレートすると動作が遅い
1 修正

unhappychoice

unhappychoice score 1505

2019/09/04 11:49  投稿

```python
for num in range(50): # 50回繰り返す
  # Webページ取得
  resp = requests.get(URL, timeout=1, headers=headers)
  # Web上の画像を取得
  imgs = soup.find_all("img") # ここでは20件しか表示されていない
  # imgsを保存  
```
なので、当然その動作かと思います。
Google 画像検索のページはスクロールによって ajax で非同期に次のページを読み込んでいるようなので、スクロールしない限り20枚目以降の結果は取得できなさそうです。
が、そもそも画像検索に関してはAPIが用意されているので、スクレイピングよりそちらの利用を推奨します。
https://developers.google.com/custom-search/v1/overview

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る