init
This commit is contained in:
commit
a812c25269
69
main.py
Normal file
69
main.py
Normal file
@ -0,0 +1,69 @@
|
||||
from bs4 import BeautifulSoup
|
||||
import urllib.request
|
||||
import time
|
||||
|
||||
items = {}
|
||||
def get_ingredients (text):
|
||||
ingredients = {}
|
||||
soup = BeautifulSoup(text, 'lxml')
|
||||
|
||||
table = soup.findAll('table', {'class':'add_stat_table'})[0]
|
||||
for child in table.children:
|
||||
a = tuple(tuple(child.children)[0].children)[0]
|
||||
ingredients[a.attrs['href']] = int(tuple(a.children)[1].text.split('( x')[-1][:-2])
|
||||
|
||||
return ingredients
|
||||
|
||||
def get_ingredients2 (text):
|
||||
ingredients = {}
|
||||
soup = BeautifulSoup(text, 'lxml')
|
||||
|
||||
table = soup.findAll('table', {'class':'add_stat_table'})[0]
|
||||
key = ''
|
||||
for child in tuple(tuple(table.children)[0].children)[0].children:
|
||||
if child.has_attr('href'):
|
||||
key = child.text
|
||||
ingredients[key] = None
|
||||
elif child.text.startswith('x'):
|
||||
ingredients[key] = int(child.text[2:])
|
||||
# On skip les arbres et les cailloux…
|
||||
for i in ingredients:
|
||||
if ingredients[i] is None:
|
||||
return {}
|
||||
return ingredients
|
||||
|
||||
def request(url):
|
||||
time.sleep(1)
|
||||
r = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
|
||||
r = urllib.request.urlopen(r)
|
||||
return r.read()
|
||||
|
||||
def recetter_un_objet (url):
|
||||
hostname = '/'.join(url.split('/')[:3])
|
||||
try:
|
||||
ingredients = get_ingredients(request(url))
|
||||
except Exception as e:
|
||||
print('Error parsing ', url)
|
||||
raise e
|
||||
|
||||
for ingredient in ingredients:
|
||||
try:
|
||||
i2 = get_ingredients2(request(hostname + ingredient))
|
||||
except Exception as e:
|
||||
print('Error parsing ', url)
|
||||
raise e
|
||||
for i in i2:
|
||||
if i not in items:
|
||||
items[i] = 0
|
||||
items[i] += i2[i] * ingredients[ingredient]
|
||||
|
||||
if __name__ == '__main__':
|
||||
print('Compteur de recette. Fonctionne avec https://genshin.honeyhunterworld.com en septembre 2021. On lit le fichier urls.txt')
|
||||
with open('urls.txt', 'r') as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
print('parsing ', line)
|
||||
recetter_un_objet(line)
|
||||
print(items)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user