Toggle navigation
Toggle navigation
This project
Loading...
Sign in
방승일
/
mamuri-bot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
유명현
2022-05-08 21:58:43 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
7231ab8454df55946e0690b9ab83125c4374f1e5
7231ab84
1 parent
ca242626
Implement daangn crawler
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
115 additions
and
0 deletions
daangn/daangn_crawl.py
daangn/sample.json
daangn/daangn_crawl.py
0 → 100644
View file @
7231ab8
from
base64
import
encode
from
bs4
import
BeautifulSoup
import
requests
import
json
def
save_json
(
parsed_items
):
with
open
(
'./sample.json'
,
'w'
)
as
f
:
json
.
dump
(
parsed_items
,
f
,
indent
=
2
,
ensure_ascii
=
False
)
def
convert_item_to_dict
(
item
):
dict_item
=
{}
dict_item
[
"item-thumbnail"
]
=
item
.
find
(
"img"
)[
"src"
]
dict_item
[
"item-title"
]
=
item
.
find
(
"span"
,
class_
=
"article-title"
)
.
text
.
strip
()
dict_item
[
"item-content"
]
=
item
.
find
(
"span"
,
class_
=
"article-content"
)
.
text
.
strip
()
dict_item
[
"item-region"
]
=
item
.
find
(
"p"
,
class_
=
"article-region-name"
)
.
text
.
strip
()
dict_item
[
"item-price"
]
=
item
.
find
(
"p"
,
class_
=
"article-price"
)
.
text
.
strip
()
if
(
item
.
find
(
"span"
,
class_
=
"article-watch"
)
==
None
):
dict_item
[
"item-watch-count"
]
=
'0'
else
:
dict_item
[
"item-watch-count"
]
=
item
.
find
(
"span"
,
class_
=
"article-watch"
)
.
text
.
strip
()
return
dict_item
# def convert_item_to_json(item):
# dict_item = {}
# dict_item["item-thumbnail"] = item.find("img")["src"]
# dict_item["item-title"] = item.find("span", class_="article-title").text.strip()
# dict_item["item-content"] = item.find("span", class_="article-content").text.strip()
# dict_item["item-region"] = item.find("p", class_="article-region-name").text.strip()
# dict_item["item-price"] = item.find("p", class_="article-price").text.strip()
# if(item.find("span", class_="article-watch") == None):
# dict_item["item-watch-count"] = '0'
# else:
# dict_item["item-watch-count"] = item.find("span", class_="article-watch").text.strip()
# json_item = json.dumps(dict_item, ensure_ascii=False)
# return json_item
def
crawl
(
keyword
):
if
type
(
keyword
)
!=
type
(
"test string"
):
return
"Error: Invalid Keyword"
BASE_URL
=
"https://www.daangn.com/search/"
URL
=
BASE_URL
+
keyword
res
=
requests
.
get
(
URL
)
html
=
res
.
text
soup
=
BeautifulSoup
(
html
,
'html.parser'
)
items
=
soup
.
select
(
'.flea-market-article-link'
)
parsed_items
=
{}
parsed_items
[
"length"
]
=
str
(
len
(
items
))
parsed_items
[
"items"
]
=
[]
for
i
in
range
(
0
,
len
(
items
)):
item
=
items
[
i
]
json_item
=
convert_item_to_dict
(
item
)
parsed_items
[
"items"
]
.
append
(
json_item
)
save_json
(
parsed_items
)
json_items
=
json
.
dumps
(
parsed_items
,
ensure_ascii
=
False
,
indent
=
2
)
return
json_items
if
__name__
==
"__main__"
:
print
(
crawl
(
"RTX 3080"
))
\ No newline at end of file
daangn/sample.json
0 → 100644
View file @
7231ab8
{
"length"
:
"6"
,
"items"
:
[
{
"item-thumbnail"
:
"https://dnvefa72aowie.cloudfront.net/origin/article/202205/ADB1646017CBA520AA41B245956BD92B3DAA3D2A4372779F2233456B94ED531E.jpg?q=82&s=300x300&t=crop"
,
"item-title"
:
"12600k + rtx3080 게이밍pc 데스크탑"
,
"item-content"
:
"3월에 구매해서 2달가량 사용했습니다
\n\n
컴퓨존 기준 225정도 나옵니다
\n\n
궁금하신점은 문의주세요
\n\n
cpu : i5-12600k
\n
m/b : asus rog strix b660-a wifi stcom
\n
램 : 삼성 ddr4-25600 32gb (16x2)
\n
그래픽카드 : msi rtx3080 gaming z trio 10gb
\n
ssd : sk p31 500gb
\n
쿨러 : rc400 화이트
\n
파워 : 마이크로닉스 클래식2 850w 풀모듈러 화이트
\n
케이스 : 앱코 p1000 화이트"
,
"item-region"
:
"경기도 안양시 동안구 비산2동"
,
"item-price"
:
"1,800,000원"
,
"item-watch-count"
:
"2"
},
{
"item-thumbnail"
:
"https://dnvefa72aowie.cloudfront.net/origin/article/202205/F0A3C9B8A7A6AE705E768AA714CDA90C42FE8416B91C6D02606F8CFE370853AD.jpg?q=82&s=300x300&t=crop"
,
"item-title"
:
"RTX3080 12g 기가바이트 이글 미개봉"
,
"item-content"
:
"RTX3080 12g 기가바이트 이글 미개봉 팝니다
\n
미개봉품 2차구매했는데 다른거 구해서 팔아요
\n
3080 12기가중 전국최저가"
,
"item-region"
:
"경북 칠곡군 석적읍"
,
"item-price"
:
"950,000원"
,
"item-watch-count"
:
"1"
},
{
"item-thumbnail"
:
"https://dnvefa72aowie.cloudfront.net/origin/article/202205/05c55f346c00c7a0a95c91db4ee35aa86d3ccc20f870bdea7b5edff006dc33ae.webp?q=82&s=300x300&t=crop"
,
"item-title"
:
"rtx 3080 msi suprim x"
,
"item-content"
:
"3월에 주문했는데
\n
대한통운 파업때문에 1달정도 밖에 사용안했습니다
\n
채굴x 흡연x 반려동물 x
\n
게임용도로만 사용했으며
\n
하자없습니다
\n
직거래는 수원이며 집앞까지 오시면 2만원 깎아드려요
\n
rtx3080 슈프림 x"
,
"item-region"
:
"경기도 수원시 팔달구 매산로2가"
,
"item-price"
:
"1,050,000원"
,
"item-watch-count"
:
"4"
},
{
"item-thumbnail"
:
"https://dnvefa72aowie.cloudfront.net/origin/article/202203/185b1b0a4a5bf7a2b1b9c7ec37803bab70dbb09fc436d085eb298df557991b19.webp?q=82&s=300x300&t=crop"
,
"item-title"
:
"게이밍 본체 AMD라이젠7-5800X 지포스RTX3080"
,
"item-content"
:
"21년10중순이후사용 아우스3년as
\n
앞으로2년6개월정도남았습니다. 삼성16램추가 총32기가 수냉식! 홀로남아있어요.거의 사용 안함.
\n
아들이 고1이라서 시간이 없어 판매중입니다"
,
"item-region"
:
"부산 연제구 거제제4동"
,
"item-price"
:
"3,200,000원"
,
"item-watch-count"
:
"5"
},
{
"item-thumbnail"
:
"https://dnvefa72aowie.cloudfront.net/origin/article/202204/e2081b5dd2f5f0c18f5c692f9ad3d206beee493aec4d3b2ca6909f172499efd0.webp?q=82&s=300x300&t=crop"
,
"item-title"
:
"게이밍노트북 / 지포스 RTX 3080그래픽 RAZER BLADE 15 Advanced 10Gen R3080 FHD"
,
"item-content"
:
"시용한지 1년안된 노트북 판매합니다
\n
모든게임 풀가능
\n\n
■ 구입 시기
\n\n
구입 날짜 : 2021. 8
\n\n
실 개봉 일자 : 2021. 9
\n\n
구매 금액 : 3,700,000원
\n\n
■ 배터리 정보
\n\n
배터리 수명 97.58% 이며 외관 상태 거의 사용감 없습니다.
\n\n
■ 노트북 정보
\n\n
품명 / 모델명
\n\n
노트북 / RAZER BLADE 15 Advanced 10Gen R3080 FHD
\n\n
R-R-raz-RZ09-0367 / XU100277-19018D
\n\n
크기
\n\n
16.99 x 235 x 355 mm
\n\n
무게
\n\n
무게 2.01kg
\n\n
주요 사양
\n\n
39.62cm(15.6인치) / 인텔 / 코어i7-10세대 / 코멧레이크 / i7-10875H / 2.3GHz(5.1GHz) / 운영체제(OS): 윈도우10 / sRGB 100% / 지포스 RTX 3080 / 32GB 메모리 / SSD 1TB
\n\n
기본 구성품 박스 포함 (전원 케이블, 노트북 본체)입니다"
,
"item-region"
:
"경기도 고양시 일산서구 주엽1동"
,
"item-price"
:
"2,600,000원"
,
"item-watch-count"
:
"6"
},
{
"item-thumbnail"
:
"https://dnvefa72aowie.cloudfront.net/origin/article/202205/51f62ae1015fa1ac98f0b1c677625d657336a06950180104a7fb809f13e7fe90.webp?q=82&s=300x300&t=crop"
,
"item-title"
:
"RTX3080 10GB LHR 화이트스트릭스(화스) 판매합니다"
,
"item-content"
:
"21/08/03) 컴퓨존에서 구입한제품입니다
\n\n
기스 하나없이 사용했으며 풀박스구성으로 반지,스트랩등 구성품 전부 미사용입니다
\n\n
(포트마개 한개가 분실되어 이점만 유의부탁드려요)
\n\n
제 시스템상 고주파는 양호해서 문제없이 사용했었습니다
\n\n
거래명세서도 출력해서 같이 드려요
\n\n
+ 당일 동일제품 중고나라 시세맞춰서 가격잡았습니다 무리한 네고는 답변안합니다"
,
"item-region"
:
"경기도 수원시 영통구 망포동"
,
"item-price"
:
"1,220,000원"
,
"item-watch-count"
:
"2"
}
]
}
\ No newline at end of file
Please
register
or
login
to post a comment