유명현

Merge branch 'hotfix/daangn_crawl_error' into 'main'

HOTFIX: resolve parsing price error - over ten thousand won case



See merge request !9
...@@ -3,6 +3,27 @@ from bs4 import BeautifulSoup ...@@ -3,6 +3,27 @@ from bs4 import BeautifulSoup
3 import requests 3 import requests
4 import json 4 import json
5 5
6 +def parse_price(unparsed_price):
7 + over_ten_thousand = False
8 + if "만" in unparsed_price:
9 + over_ten_thousand = True
10 +
11 + unparsed_price = unparsed_price.replace("원", "")\
12 + .replace("만", "0000")\
13 + .replace(",", "")\
14 + .split()
15 + print(unparsed_price)
16 + if(over_ten_thousand):
17 + # 100만 2000원 같이 천원 단위가 있을 경우 split 과정에서 만의 단위, 천의 단위가 분리됩니다
18 + if len(unparsed_price) > 1:
19 + parsed_price = int(unparsed_price[0][0:-4] + unparsed_price[1])
20 + else:
21 + parsed_price = int(unparsed_price[0])
22 + else:
23 + parsed_price = int(unparsed_price[0])
24 +
25 + return parsed_price
26 +
6 def save_json(parsed_items): 27 def save_json(parsed_items):
7 with open('./sample.json', 'w') as f: 28 with open('./sample.json', 'w') as f:
8 json.dump(parsed_items, f, indent=2, ensure_ascii=False) 29 json.dump(parsed_items, f, indent=2, ensure_ascii=False)
...@@ -12,12 +33,7 @@ def convert_item_to_dict(item): ...@@ -12,12 +33,7 @@ def convert_item_to_dict(item):
12 dict_item["platform"] = "daangn" 33 dict_item["platform"] = "daangn"
13 dict_item["name"] = item.find("span", class_="article-title").text.strip() 34 dict_item["name"] = item.find("span", class_="article-title").text.strip()
14 unparsed_price = item.find("p", class_="article-price").text.strip(" \n ") 35 unparsed_price = item.find("p", class_="article-price").text.strip(" \n ")
15 - unparsed_price = unparsed_price.replace("원", "")\ 36 + dict_item["price"] = parse_price(unparsed_price)
16 - .replace("만", "0000")\
17 - .replace(",", "")
18 - parsed_price = int(unparsed_price)
19 - print(parsed_price)
20 - dict_item["price"] = parsed_price
21 # dict_item["price"] = item.find("p", class_="article-price").text.strip() 37 # dict_item["price"] = item.find("p", class_="article-price").text.strip()
22 dict_item["thumbnailUrl"] = item.find("img")["src"] 38 dict_item["thumbnailUrl"] = item.find("img")["src"]
23 dict_item["itemUrl"] = "https://www.daangn.com" + item["href"] 39 dict_item["itemUrl"] = "https://www.daangn.com" + item["href"]
......
1 { 1 {
2 - "length": "0", 2 + "length": "6",
3 - "items": [] 3 + "items": [
4 + {
5 + "platform": "daangn",
6 + "name": "rtx 3080 10g 어로스 익스트림 팔거나 3080ti 슈프림 추금 교환",
7 + "price": 1200000,
8 + "thumbnailUrl": "https://dnvefa72aowie.cloudfront.net/origin/article/202205/94cdd237258671d5806a70f64ab2b3c7dcd790da0384b394ef5809fe10c08ced.webp?q=82&s=300x300&t=crop",
9 + "itemUrl": "https://www.daangn.com/articles/403755360",
10 + "extraInfo": "21년10월에 단순 개봉한 제품 구입했고 1주일에 2~3시간 스팀게임만 했습니다\nas1년 연장했고 구매영수증 받아놨습니다\n3080ti 슈프림 추금드리고 교환도 합니다"
11 + },
12 + {
13 + "platform": "daangn",
14 + "name": "RTX 3080 기가바이트 3080 어로스 익스트림 10G 그래픽카드",
15 + "price": 1150000,
16 + "thumbnailUrl": "https://dnvefa72aowie.cloudfront.net/origin/article/202205/B42DADA9DCAC867B1D86871592153570FAE307E8D2D28FCDF72709952344FAD6.jpg?q=82&s=300x300&t=crop",
17 + "itemUrl": "https://www.daangn.com/articles/398175307",
18 + "extraInfo": "마지막 가격다운 오늘까지 안팔리면 그냥 쓸려구여~\nA/s 4년\n신품수준\n가끔 베그만했고 거의 관상용으로만 썼습니다\n풀박스 구성품 모두있습니다\n기스. 하자. 먼지. 없습니다\n결벽증 환자\n이제 낚시하러 갑니다~~~\n그래픽카드. 글카. 기가바이트. 컴퓨터. 게이밍pc. 어로스. 익스트림. 배그. 배틀그라운드. 3080"
19 + },
20 + {
21 + "platform": "daangn",
22 + "name": "컴퓨터 그래픽카드 갤럭시 RTX 3080TI 미개봉 새제품 (3080)",
23 + "price": 1321000,
24 + "thumbnailUrl": "https://dnvefa72aowie.cloudfront.net/origin/article/202204/4334a42d80d5dfda4158b1c0b68c924cd48e914d04dd5f573509e949b61c65e0.webp?q=82&s=300x300&t=crop",
25 + "itemUrl": "https://www.daangn.com/articles/396677715",
26 + "extraInfo": "연락주세요 새제품\n온라인 최저가 150입니다.\n맘변심으루 팔아요\n조금 내고 가능합니다"
27 + },
28 + {
29 + "platform": "daangn",
30 + "name": "RTX3070 GAMING TRIO Z LHR + @로 RTX3080 구합니다",
31 + "price": 700000,
32 + "thumbnailUrl": "https://dnvefa72aowie.cloudfront.net/origin/article/202205/E707C3B588E6973225E6B418D2D51EF94980C8B30D75B9E6FDA1B8F5C1C3AB39.jpg?q=82&s=300x300&t=crop",
33 + "itemUrl": "https://www.daangn.com/articles/403567500",
34 + "extraInfo": "3070중 중상급으로 속하는 트리오Z입니다\n추금은 25~30정도로 생각하구요\n카드 단품이고 사진에 보이듯 흠집이 쪼끔 제조년월 21-08입니다 \nAS기간24-08까지에용 게임만 돌렸습니다\n그리고 파스점수는 평균 점수보다 조금 높게 나오는 카드입니다 AS씰 안 떼어놔서 일련번호로 에이에스 가능합니당\n\n제가 사용해본 카드중 제일 소음 없는 카드같아여"
35 + },
36 + {
37 + "platform": "daangn",
38 + "name": "RTX 3070 GAMING TRIO Z lhr+@로 RTX3080 구합니다",
39 + "price": 700000,
40 + "thumbnailUrl": "https://dnvefa72aowie.cloudfront.net/origin/article/202205/616FB7B2230B955D9CF6BFAC3C4F27CFCC378A5B90FEB9893DA5C6189A880966.jpg?q=82&s=300x300&t=crop",
41 + "itemUrl": "https://www.daangn.com/articles/403566100",
42 + "extraInfo": "3070중 중상급으로 속하는 트리오Z입니다\n추금은 25~30정도로 생각하구요\n카드 단품이고 사진에 보이듯 흠집이 쪼끔 제조년월 21-08입니다 \nAS기간24-08까지에용 게임만 돌렸습니다\n그리고 파스점수는 평균 점수보다 조금 높게 나오는 카드입니다 AS씰 안 떼어놔서 일련번호로 에이에스 가능합니당\n\n제가 사용해본 카드중 제일 소음 없는 카드같아여"
43 + },
44 + {
45 + "platform": "daangn",
46 + "name": "INNO3D 지포스 RTX 3080Ti D6X 12GB ICHILL X4 3080ti 미개봉 팝니다",
47 + "price": 1220000,
48 + "thumbnailUrl": "https://dnvefa72aowie.cloudfront.net/origin/article/202205/d78524ae688e578a55bdea31789c913b761ad6d0279289f3b1d0863302f757e2.webp?q=82&s=300x300&t=crop",
49 + "itemUrl": "https://www.daangn.com/articles/402890416",
50 + "extraInfo": "INNO3D 지포스 RTX 3080Ti D6X 12GB ICHILL X4 3080ti 미개봉 팝니다"
51 + }
52 + ]
4 } 53 }
...\ No newline at end of file ...\ No newline at end of file
......