당근마켓 내가 원하는 상품 전국 동네 크롤링하기
류명운
·2025. 4. 13. 19:23
엘지 lg 광파오븐 중고 물건을 찾고 있는데. 중고나라보다 당근마켓이 더 물건이 많고 가격도 저렴한거 같다.
(아무래도 동네 판매라 판매가 용이하니 물건이 많은 것 같기도 하고.. 가격도 착하네)
무튼 내 주변 동네는 맘에드는 물건이 없어서 전국 동네 검색을 해보려고 한다.
당근마켓 홈페이지에서 일일히 동네선택해가며 확인이 가능하다.
근데 어떤 바보가 그걸 일일히 확인하겠냐~~!
일단 테스트용으로 챗지피티한테 특정 물건 크롤링좀하게 코드 좀 짜달랬다.
get 방식으로 조회하는데 파라미터 중 id 값이 동네이다. 숫자로 표현도 가능하다. 3~10561까지 동네가 존재하는 것 같다.
.cards-wrap .card-top 이 변수의 값이 true 이면 현재 판매가능한 1개 이상의 상품이 존재 (예약/판매완료는 판매불가능상태)
간단하게 당근마켓 페이지에서 크롬 개발자도구(f12)열고 console 란에 아래 코드 입력하면 자기가 일일히 페이지 다 조회해서 확인해본다.
(async () => {
//검색키워드
const keyword = encodeURIComponent('엘지 lg 광파오븐');
//당근마켓 동네번호3~10561까지 존재
const startId = 6010;
const endId = 6035;
//결과저장
const results = [];
for (let id = startId; id <= endId; id++) {
const url = `/kr/buy-sell/?in=${id}&only_on_sale=true&search=${keyword}`;
try {
const response = await fetch(url);
const html = await response.text();
const temp = document.createElement('html');
temp.innerHTML = html;
if (temp.innerHTML.indexOf('근처에') != -1) {
console.log("- - "+id);
} else {
console.log("있!음 - "+id);
var site = 'https://www.daangn.com/'+url;
results.push({ id, site});
}
// 서버 과부하 방지용 딜레이
await new Promise(res => setTimeout(res, 500));
} catch (e) {
console.warn(`⚠️ [ID ${id}] 에러: ${e.message}`);
}
}
console.log("📍 최종 검색된 동네 ID 목록:");
console.table(results);
})();
6010부터 6035까지 테스트 조회해본 결과

1. 주소 링크만 클릭해서 확인할 수 있게 csv 파일로 저장해서 출력하기
2. 상품이 존재할 경우 상품 객체들 한 페이지 html안에 다 넣어서 한 눈에 보이게 가공하기
1 / 2는 알아서들 가공해서 사용하시길 ^.^
'Workaholic ? > Business Tech' 카테고리의 다른 글
| [Outlook] 아웃룩 마스터로 업무 효율 높이기 (0) | 2021.09.19 |
|---|