Skip to content

Commit

Permalink
refactor: Change model of EventItem
Browse files Browse the repository at this point in the history
  • Loading branch information
WhiteHyun committed May 2, 2024
1 parent 1cf8d22 commit e586d5b
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 3 deletions.
4 changes: 4 additions & 0 deletions Crawler/cu_crawler.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@
from base.crawler import Crawler
from event_items import EventItem
from event_items import PromotionType
from event_items import ConvenienceStoreType
else:
from .base.crawler import Crawler
from .event_items import EventItem
from .event_items import PromotionType
from .event_items import ConvenienceStoreType


class CUCrawler(Crawler):
Expand Down Expand Up @@ -44,6 +46,7 @@ async def __parse_data(
if badge_text == "1+1"
else PromotionType.buy_two_get_one_free
),
store=ConvenienceStoreType.cu,
event_name=name,
price=price,
name=name,
Expand Down Expand Up @@ -84,6 +87,7 @@ async def execute(self) -> list[EventItem]:
async def main():
crawler = CUCrawler()
items = await crawler.execute()
print(items)


if __name__ == "__main__":
Expand Down
5 changes: 4 additions & 1 deletion Crawler/emart24_crawler.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@
from base.crawler import Crawler
from event_items import EventItem
from event_items import PromotionType
from event_items import ConvenienceStoreType
else:
from .base.crawler import Crawler
from .event_items import EventItem
from .event_items import PromotionType
from .event_items import ConvenienceStoreType


class Emart24Crawler(Crawler):
Expand All @@ -25,7 +27,7 @@ async def __parse_data(
event_items = []
for div in soup.select("div.itemWrap"):
image_url = div.select_one(".itemImg img")["src"]
if not await self._is_valid_image(session, image_url):
if not image_url or not await self._is_valid_image(session, image_url):
image_url = None
name = div.select_one(".itemtitle p a").get_text(strip=True)
price = int(
Expand All @@ -43,6 +45,7 @@ async def __parse_data(
if badge_text == "1+1"
else PromotionType.buy_two_get_one_free
),
store=ConvenienceStoreType.emart24,
event_name=name,
price=price,
name=name,
Expand Down
12 changes: 10 additions & 2 deletions Crawler/event_items.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,21 @@


class PromotionType(Enum):
buy_one_get_one_free = "1+1"
buy_two_get_one_free = "2+1"
buy_one_get_one_free = "BUY_ONE_GET_ONE_FREE"
buy_two_get_one_free = "BUY_TWO_GET_ONE_FREE"


class ConvenienceStoreType(Enum):
gs25 = "GS25"
seven_eleven = "SEVEN_ELEVEN"
cu = "CU"
emart24 = "EMART24"


@dataclass
class EventItem:
promotion_type: PromotionType
store: ConvenienceStoreType
event_name: str
price: int
name: str
Expand Down
3 changes: 3 additions & 0 deletions Crawler/gs_crawler.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@
from base.crawler import Crawler
from event_items import EventItem
from event_items import PromotionType
from event_items import ConvenienceStoreType
else:
from .base.crawler import Crawler
from .event_items import EventItem
from .event_items import PromotionType
from .event_items import ConvenienceStoreType


class GSCrawler(Crawler):
Expand All @@ -29,6 +31,7 @@ async def __parse_data(
if item["eventTypeNm"] == "1+1"
else PromotionType.buy_two_get_one_free
),
store=ConvenienceStoreType.gs25,
event_name=item["goodsNm"],
price=item["price"],
name=item["abrGoodsNm"],
Expand Down
3 changes: 3 additions & 0 deletions Crawler/seven_eleven_crawler.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@
from base.crawler import Crawler
from event_items import EventItem
from event_items import PromotionType
from event_items import ConvenienceStoreType
else:
from .base.crawler import Crawler
from .event_items import EventItem
from .event_items import PromotionType
from .event_items import ConvenienceStoreType


class SevenElevenCrawler(Crawler):
Expand Down Expand Up @@ -55,6 +57,7 @@ async def __parse_data(

event_item = EventItem(
promotion_type=promotion_type,
store=ConvenienceStoreType.seven_eleven,
event_name=name,
price=price,
name=name,
Expand Down

0 comments on commit e586d5b

Please sign in to comment.