Merge branch 'hotfix/daangn_crawl_error' into 'main'
HOTFIX: resolve parsing price error - over ten thousand won case See merge request !9
Showing
2 changed files
with
73 additions
and
8 deletions
... | @@ -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 | ... | ... |
-
Please register or login to post a comment