質問編集履歴

1

初歩的なミスを発見し、コードを大幅に変更いたしました。現在の状況から複数の異なる画像を保存するための方法についてご教示いただきたいです。よろしくお願いします。

2020/06/08 16:28

投稿

jury_new
jury_new

スコア31

test CHANGED
File without changes
test CHANGED
@@ -2,15 +2,59 @@
2
2
 
3
3
  複数の画像をディレクトリに保存したいです。
4
4
 
5
- エラ〜メッセージは出いない状態で、**最後の画像のURLだけ取得されディレクトリに保存**されています。
5
+ 現在ファイルがしっかりとすべ19個作成されたのすが同じ画像が保存されてしまっています。
6
6
 
7
+ リンク通りに全ての画像を取得したいです。
8
+
9
+ ちなみに上記のfor文では、異なる画像のURLがとれています。
10
+
7
- ### 発生してい問題・エラーメッセージ(ダウンロード行われている場所のみを表示)
11
+ ### 異な画像のURLれている様子。
8
12
 
9
13
 
10
14
 
11
15
  ```
12
16
 
13
- Now scraping:::https://msp.c.yimg.jp/yjimage?q=w1oGxlIXyLGuh1qAvHDOp_tB1yKkdhJi_6qcuJjWY0NWsJbhlh2C9tZor2qUjT.whUpitU8QF8gbOZuSDgsZHRJmQFO34Zjq4rHXiHjHeoSZIxty20CfBGv7LESQEvFdxhLSdRxhv2QR_Wc7oJYr&sig=13av68fo1&x=277&y=182
17
+ これが内容https://msp.c.yimg.jp/yjimage?q=XksQDoAXyLHxoogz00HtUlbeKQ8RwxIBXNLesE18LfanzXbaVJCSxg5lzyDW0.CfcTPc.uqyQGk_5JpJMysZ5eay8vteb8fNAB7LKz4RSMOZdfNWGqE4ZlmAF4f.Ca34AVF.uxJroqEBXJ98Nu9_&sig=13a5plidl&x=275&y=183
18
+
19
+ これが内容https://msp.c.yimg.jp/yjimage?q=vo8En0oXyLEuenVktykTK.0z7Ywhfc0mbO315.XhVx28xP8H0jsrfaSSGFHyQN7LQe_U27TWGSR5EKKUNr0DPPOxXcYJxAPPLejECys4V8_7T9_O97VSDRHya3vAZUcEMjyRGj9PNuicK6wtjkmcVBY-&sig=13cafubeq&x=300&y=168
20
+
21
+ これが内容https://msp.c.yimg.jp/yjimage?q=Dt7w3tcXyLFMe.2z3.eA75r2CI78dzV4NIDVkMEZLEaw0KJcRIDKtOqZKlcC1rxaGUx0ITv4gob3a90hxR3TAlM6kJOVZKCxhYPyAdYsqXvJKk6a1mIqBCyEDg4MDWS0eGHw1HjLegSNY.zePzjg&sig=13a1brdhv&x=259&y=194
22
+
23
+ これが内容https://msp.c.yimg.jp/yjimage?q=mfiwUWMXyLHDgRRDDIIIqsFCwPp1meul.3JUfBBWpDNMAMNKI5q16M.ZrSyi1LDcTZiStPl.Vlc2C0ByDivfT2bF6lIlMZ1BZivzo7CkfFdUcwi4i7ZcWmbzmQ1rFAhDSuBqr9GjXJPJGSZwrCDNHA0-&sig=13cptkvd5&x=275&y=183
24
+
25
+ これが内容https://msp.c.yimg.jp/yjimage?q=3ASplKUXyLGDKPY31dGjoe4UdlG63NrgWAIAxTuDUDcJQTjAnTYr35gFjpYn53YxTMEJ51DDAwFczRoIoVv7awNiCJNMQW5TXY97dSp88WM0Cwh8bR5MgtjxYRvQ5QatIHBwmQaMZJRw3WrCnOjN&sig=13afe9ris&x=259&y=194
26
+
27
+ これが内容https://msp.c.yimg.jp/yjimage?q=n5Ru7YkXyLHWtvhofYG6SUZo8u5NUjiIUImO9kbrURSYRzc9Z_hk510g662DQJ_BNZVdJqSn4Md9q55o9QL23LywGuzQ4LfHGgyVqgZaZs4I6mp9.aNo3uV2wfi.IYJsdiyUezqY8_3pbsEtD.APbdg-&sig=13c7bhfe7&x=275&y=183
28
+
29
+ これが内容https://msp.c.yimg.jp/yjimage?q=2MEmquwXyLHLsCXPB46gMqPHbsUE2bpx_2UcpIumdvV4fSHRDMZ17XHuu8p2UlFqWCaYNiGvuLnwrtQAoenNt5btapZ0Qbm4ah1ZGgofGnT2mfoapSI68M6EJ4lCSVNlcdRHW_R.MaDhtxGCl4R0MSc-&sig=13cgdihc7&x=275&y=183
30
+
31
+ これが内容https://msp.c.yimg.jp/yjimage?q=X86q.44XyLEkexPCsLFDmk_pPoq0Hx8eLg5umUJCmOdGyeiz2PD9TNuFRuHsnOJn5_kfoFDU0DJiPHJuEvOTmkNIVqkA5ewBA1Eqi1dvTo6gGT2Aycu1jbrJfXF1iG3VbaRzFU4LhGwd13PPMDWB&sig=13agffmhs&x=275&y=183
32
+
33
+ これが内容https://msp.c.yimg.jp/yjimage?q=1Ubp7zgXyLEss.FgalThe7HDPBckEv90uhHF6KpyNhx0ZUjRcGEb4Bhd0gq8DUUES.tgp3lKPyPaJlXlt252OUK8AwOvVgwqFxZDRC5c5VWRKP4N94YYJVPpoH_qYdYxMvBIqUlK3xyhnbS8fmHtv4Y-&sig=13c0p3l1p&x=259&y=194
34
+
35
+ これが内容https://msp.c.yimg.jp/yjimage?q=IJjErY8XyLGwlWEWBFpmAKKufnkaNR.LER_ly7eVSBndW4x185txb2rrKjdXtgds.OYKQRigv6HeD.i6VESuxm.uSp2uADiPOJtNEepXqglKQkF_qzW9_CQFxhiQ66oi6gVEhQJoKbxinG9DOzZw&sig=13amltn7d&x=275&y=183
36
+
37
+ これが内容https://msp.c.yimg.jp/yjimage?q=MdukpKoXyLEiD1dybJUtoi_lbr_oY7CGY1CbtWvKXmbi99udlELo4kOIZ_kaTPInKYdwaWHdwVsFxgDjot8jYV90JTuZi3r_HxCP6kNw_4T8BaQ8ujG9Yl9OCj79k6e2.FrkAyxZdgtSIFFlXEqI&sig=13aa50pi6&x=259&y=194
38
+
39
+ これが内容https://msp.c.yimg.jp/yjimage?q=UN5O1GAXyLFNN_hm0_kmLaAMkTrqQIVFq1zs2kwO.yFnbh5Hyz3eCMJT5vV2wQ.xBQ3U152Gkg.76jOzsnaaKZXdoQ4w1iqDGSz531c6DIaTk0db1lLvvPjGZOwxdbK98dOnL6Y4L1xJmyJbXn5O&sig=13a6e9jm4&x=275&y=183
40
+
41
+ これが内容https://msp.c.yimg.jp/yjimage?q=6_n18d8XyLH9rVOwic7CKtDKGCgDyKmdCjud9EaPX3tb8w451EIuwx5NR06TvdhVveve6djKIFGsAY0pOzjRrpnTAaC41oEAd9w4t.GjEURFEZm8FD0a8XfmBHB2yigp7xAvdBByrYl11UUTTfGY&sig=13agur98e&x=275&y=183
42
+
43
+ これが内容https://msp.c.yimg.jp/yjimage?q=gfM8HBEXyLHdh4tnesPZpBxt4DRsS9fXXEQAkLoxsCViODebDBV.olNMWptvbdp.9gxusI0LBW.NF155cVO9NSDDrA.UAcgolmeKnhKZq3piGNeT5Wpj5NOPs_S6O_SYl730oAZLYj_Qiecf76UYWx4-&sig=13cge4ds3&x=259&y=194
44
+
45
+ これが内容https://msp.c.yimg.jp/yjimage?q=NWp3KHYXyLGeIzmW0FY3kzB7YboWWNNNBQLiQ3ewAFoGEpfy3qF4cyOTDxeIq.h8SyxfevMr9CK1kLltgO8e4O.21JN7.V0z8fIUgcO073Xz4h75RxDZgYN7c4hvP.SshVBoUSRLExN3zJKTTVauzYs-&sig=13csoj0i9&x=290&y=173
46
+
47
+ これが内容https://msp.c.yimg.jp/yjimage?q=lEaVsOkXyLGnvCk2WWFdDzT50yLEEvHksdYV.Dq1e7bXCNBcBC6s.otK3rDJAZvVrQ4mJ.PXjnXKUNmHEwfHnX5zA_5SiNccsGbmZvGRTax07Db_Ug_yWT6tVLdbwQUAsg2pgKgzIj2mgntuwcW7&sig=13aubbufu&x=259&y=194
48
+
49
+ これが内容https://msp.c.yimg.jp/yjimage?q=8SfpK7sXyLExPAGsJwmmHBvPkrDF2XWPwjsA8jnX4N1eFAOPIT7GFnaNTuB4McYBFgx0xD_HT21AqhcuxbtN1NZ48KNngC3Nk8qK3pRLvB0wUT6lNQE5XVlC15CRq63q0R7P26GNl.KjP7YIXbJd&sig=13a5ihmgc&x=275&y=183
50
+
51
+ これが内容https://msp.c.yimg.jp/yjimage?q=Hyl2IJkXyLFaMcLlGPzDppn7Q1zvcLm7FjR5pH4LYFS0zuwzEieWuHWKmreF2YhUuObfk4ygHps0R4BPIVXinT3YzMdXi9pJ4jQ04xmg8TEloaKgp7icmlMHnCf1wu1MvtWVrMQ8CEhtpzCCcAuH&sig=13a2ac30r&x=275&y=183
52
+
53
+ これが内容https://msp.c.yimg.jp/yjimage?q=JPwLRo0XyLEHFafLnPkrQIJp0GkxRfPMQrBcpv3vZh.yv4S5GFOJHf6bMfzfhowH4Qhi2F1U.d9Z_.Luu5jKwjPBv8SUK3CKx8prqS8dIc5Rek4KGvHju5nCeV3VlOpvewwy4HufJO4j105i8geA&sig=13alicaco&x=259&y=194
54
+
55
+ これが内容https://msp.c.yimg.jp/yjimage?q=w1oGxlIXyLGuh1qAvHDOp_tB1yKkdhJi_6qcuJjWY0NWsJbhlh2C9tZor2qUjT.whUpitU8QF8gbOZuSDgsZHRJmQFO34Zjq4rHXiHjHeoSZIxty20CfBGv7LESQEvFdxhLSdRxhv2QR_Wc7oJYr&sig=13av68fo1&x=277&y=182
56
+
57
+
14
58
 
15
59
  ダウンロード完了
16
60
 
@@ -48,17 +92,7 @@
48
92
 
49
93
  show = ''
50
94
 
51
-
52
-
53
- for search in soup.find_all('img',attrs={'alt':'「桜」の画像検索結果'}):
95
+ base_dir = "/Users/uematsuyuuki/Desktop/sakura_image"
54
-
55
- img_src = search.get('src')
56
-
57
- show += ' ' + str(img_src)
58
-
59
- url_src.append(img_src)
60
-
61
-
62
96
 
63
97
 
64
98
 
@@ -66,17 +100,25 @@
66
100
 
67
101
  r = requests.get(url,stream=True)
68
102
 
103
+ print(r)
104
+
69
105
  if r.status_code == 200:
70
106
 
71
107
  with open(file_path,"wb") as f:
72
108
 
73
109
  f.write(r.content)
74
110
 
75
- print('Now scraping:::{}'.format(url))
111
+ print('Now scraping:::{}'.format(url))
76
112
 
77
113
 
78
114
 
115
+ for search in soup.find_all('img',attrs={'alt':'「桜」の画像検索結果'}):
116
+
79
- base_dir = "#ディレクトリまでのパスを入力しています"
117
+ img_src = search.get('src')
118
+
119
+ print('これが内容'+img_src)
120
+
121
+ url_src.append(img_src)
80
122
 
81
123
 
82
124
 
@@ -86,17 +128,13 @@
86
128
 
87
129
  dire = os.path.join(base_dir,filename)
88
130
 
131
+ download_image(url=img_src,file_path=dire)
132
+
89
133
  print(dire)
90
-
91
-
92
-
93
- download_image(url=img_src,file_path=dire)
94
-
95
- print("ダウンロード完了")
96
134
 
97
135
 
98
136
 
99
-
137
+ print("ダウンロード完了")
100
138
 
101
139
  ```
102
140
 
@@ -104,4 +142,8 @@
104
142
 
105
143
  ### 試したこと
106
144
 
145
+ 上の方にあるimg_srcの場合、print関数で出力すると異なるURLが出力されるのですが、
146
+
147
+ 一番最後のfor文の中にあるdownload_imageの列を出力するとimg_srcが一つのURLしか読み込んでいないらしくファイルに保存されている画像全てが同じになってしまっています。
148
+
107
- showという変数など結果イテラブル返し見ようとした結果、タミナル上には表示されたのですが、ファイルは最後の画像のみしか作成されませんでした。
149
+ そこ階層上の方あるimg_srcに合わせみました。ですが、結果的にダウンロされた画像は全て同じでした。