Skip to content

Instantly share code, notes, and snippets.

@xia-sava
Last active August 12, 2018 10:46
Show Gist options
  • Save xia-sava/22da99889338013f201a62c7b6cbf300 to your computer and use it in GitHub Desktop.
Save xia-sava/22da99889338013f201a62c7b6cbf300 to your computer and use it in GitHub Desktop.
激辛祭り http://www.gekikara-gourmet.com/ のメニュー一覧表がほしかった
import requests
from bs4 import BeautifulSoup
import jinja2
data = []
week = 1
for nums in [range(1, 10), range(10, 19), range(19, 28), range(70, 79)]:
phase = {'week': week, 'shops': []}
for num in nums:
url = f'http://www.gekikara-gourmet.com/shops/{num}.html'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
shop_name = soup.select("#intro h1")[0].string
shop = {'name': shop_name, 'menu': []}
for menu in soup.select('#menu_lineup')[0].select('li'):
menu_name = menu.select('p.caption')[0].string
menu_image = menu.select('p.thumbnail')[0].select('img')[0].attrs['src']
shop['menu'].append({'name': menu_name, 'image': menu_image})
phase['shops'].append(shop)
data.append(phase)
week += 1
tmpl = jinja2.Environment().from_string("""
<html>
<body>
{% for phase in data %}
<h1>第 {{phase.week}} 週</h1>
{% for shop in phase.shops %}
<hr />
<h2> {{ shop.name }} </h2>
<table>
<tr>
{% for menu in shop.menu %}
<td>
<div> {{ menu.name }} </div>
<div> <img src="{{ menu.image }}" /> </div>
<div> <br /> <br /> </div>
</td>
{% endfor %}
</tr>
</table>
{% endfor %}
{% endfor %}
</body>
</html>
""")
print(tmpl.render({'data': data}))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment