teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

詳細に

2019/09/04 03:14

投稿

unhappychoice
unhappychoice

スコア1531

answer CHANGED
@@ -17,10 +17,12 @@
17
17
  スクレイピングは API などが用意されていない等の理由でとる最後の手段という意味が強く、
18
18
  デメリットも多いのでAPIがあるのであればそちらの利用を推奨します。
19
19
 
20
- デメリット
20
+ #### デメリット
21
21
 
22
- - 取得先の相手が望まない形のアクセスとなる
22
+ ##### 取得先の相手が望まない形のアクセスとなる
23
- - Sleepや適切なコードを書いても訴訟になったケースあり
23
+ - Sleepや適切なコードを書いても訴訟になったケースあり
24
+
24
- - 壊れやすい
25
+ ##### 壊れやすい
25
- - 相手先でHTMLの構造を変えられると容易に壊れる
26
+ - 相手先でHTMLの構造を変えられると容易に壊れる
27
+
26
- - JavaScript やブラウザまでエミュレートすると動作が遅い
28
+ ##### JavaScript やブラウザまでエミュレートすると動作が遅い

2

詳細に

2019/09/04 03:14

投稿

unhappychoice
unhappychoice

スコア1531

answer CHANGED
@@ -11,4 +11,16 @@
11
11
  Google 画像検索のページはスクロールによって ajax で非同期に次のページを読み込んでいるようなので、スクロールしない限り20枚目以降の結果は取得できなさそうです。
12
12
 
13
13
  が、そもそも画像検索に関してはAPIが用意されているので、スクレイピングよりそちらの利用を推奨します。
14
- https://developers.google.com/custom-search/v1/overview
14
+ https://developers.google.com/custom-search/v1/overview
15
+
16
+
17
+ スクレイピングは API などが用意されていない等の理由でとる最後の手段という意味が強く、
18
+ デメリットも多いのでAPIがあるのであればそちらの利用を推奨します。
19
+
20
+ デメリット
21
+
22
+ - 取得先の相手が望まない形のアクセスとなる
23
+ - Sleepや適切なコードを書いても訴訟になったケースあり
24
+ - 壊れやすい
25
+ - 相手先でHTMLの構造を変えられると容易に壊れる
26
+ - JavaScript やブラウザまでエミュレートすると動作が遅い

1

修正

2019/09/04 03:12

投稿

unhappychoice
unhappychoice

スコア1531

answer CHANGED
@@ -4,6 +4,7 @@
4
4
  resp = requests.get(URL, timeout=1, headers=headers)
5
5
  # Web上の画像を取得
6
6
  imgs = soup.find_all("img") # ここでは20件しか表示されていない
7
+ # imgsを保存
7
8
  ```
8
9
 
9
10
  なので、当然その動作かと思います。