回答編集履歴

1

回答の訂正

2020/04/01 05:03

投稿

nto
nto

スコア1438

test CHANGED
@@ -45,3 +45,79 @@
45
45
  ```
46
46
 
47
47
  繰り返し処理(for文)の中で、更に繰り返し処理を行う事で実現に近づけるかと思います。
48
+
49
+
50
+
51
+
52
+
53
+ ### 追記
54
+
55
+ ```Python
56
+
57
+ import time
58
+
59
+ import re
60
+
61
+ import requests
62
+
63
+ from pathlib import Path
64
+
65
+ from bs4 import BeautifulSoup
66
+
67
+ from tqdm import tqdm
68
+
69
+
70
+
71
+ output_folder = Path('C:\python\img')
72
+
73
+
74
+
75
+ url_list = ['https://tabelog.com/tokyo/A1303/A130302/13219514/dtlmenu/',
76
+
77
+ 'https://tabelog.com/tokyo/A1303/A130302/13212082/dtlmenu/']
78
+
79
+
80
+
81
+ for url in url_list:
82
+
83
+ html = requests.get(url).text
84
+
85
+ soup = BeautifulSoup(html, 'lxml')
86
+
87
+ a_list =soup.select('div.rstdtl-menu-lst__img')
88
+
89
+ shopname = soup.find(class_='display-name').find_next('a').text
90
+
91
+
92
+
93
+ for a in tqdm(a_list):
94
+
95
+ link_url = a.img['src']
96
+
97
+ filename = re.search(".*/(.*png|.*jpg)$",link_url)
98
+
99
+ save_path = output_folder.joinpath(shopname + filename.group(1))
100
+
101
+
102
+
103
+ try:
104
+
105
+ image = requests.get(link_url)
106
+
107
+ open(save_path, 'wb').write(image.content)
108
+
109
+ except ValueError:
110
+
111
+ print('valueerror')
112
+
113
+ time.sleep(2.0)
114
+
115
+ time.sleep(2.0)
116
+
117
+ ```
118
+
119
+ あくまでもサンプルコードとなります。
120
+
121
+ また質問者様の追記コードではお店毎にフォルダ分け等はしていない様で、どの画像がどのお店のものであるかの区別がつかない為、ファイル名にお店の名前をつける様な形のコードと勝手にさせていただきましたが不要であれば17行目、22行目のjoinpath部を削除してください。
122
+
123
+ あとtqdmも勝手に装飾してしまいました。installしてみて試してください。