-
Notifications
You must be signed in to change notification settings - Fork 496
/
lecker.py
69 lines (53 loc) · 1.67 KB
/
lecker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# mypy: disallow_untyped_defs=False
from ._abstract import AbstractScraper
from ._exceptions import SchemaOrgException
class Lecker(AbstractScraper):
@classmethod
def host(cls):
return "lecker.de"
def author(self):
return self.schema.author()
def title(self):
try:
return self.schema.title()
except TypeError:
return (
self.soup.find(
"header", {"class": "article-header article-header--article"}
)
.find("h1")
.get_text()
)
def category(self):
return self.schema.category()
def prep_time(self):
return self.schema.prep_time()
def cook_time(self):
return self.schema.cook_time()
def total_time(self):
return self.schema.total_time()
def yields(self):
return self.schema.yields()
def image(self):
return self.schema.image()
def ingredients(self):
return self.schema.ingredients()
def instructions(self):
if self.schema.instructions():
return self.schema.instructions()
else:
divs = self.soup.find_all("div", {"class": "js-quizToggle"})
for d in divs:
if d.find("span", "article__shifted-jump-label"):
return d.get_text()
def ratings(self):
return self.schema.ratings()
def nutrients(self):
return self.schema.nutrients()
def cuisine(self):
try:
return self.schema.cuisine()
except SchemaOrgException:
return None
def description(self):
return self.schema.description()