네이버 부동산 데이터 스크래퍼 소개 & 컨테이너 배포 가이드 (파이썬)

📌 네이버 부동산 데이터 스크래퍼를 소개합니다!

네이버 부동산에서 매물을 지도 기반으로만 보다 보면, 모든 매물을 한눈에 확인하기 어렵고, 원하는 조건의 매물을 빠르게 찾기 힘든 경우가 많습니다.

이제는 네이버 지도 그래픽 환경의 검색 뿐만 아니라, 엑셀처럼 정리된 데이터 형태로 부동산 매물을 검색해보세요!
지역별, 가격별, 평형별로 필터링하며 원하는 정보를 손쉽게 찾을 수 있습니다.

누구나 쉽게 사용할 수 있도록 만든 도구입니다.
필요한 정보를 빠르게 찾고, 현명한 선택에 도움되길 바랍니다.


사용 방법은 네이버 부동산 들어가셔서 URL에서 숫자를 확인하고 입력하시기만 하면 됩니다. 이 화면에서는 131345를 사용하시면 됩니다.


그리고 나서 131455 숫자를 입력하시고 매물 검색을 합니다.




이제부터는 깃코드로 애플리케이션을 컨테이너 환경으로 만드는 절차를 설명 합니다.

코드는 다음과 깃허브 참고하세요.
https://github.com/dslee1371/scraper_trade_rs_stream

컨테이너화

1. 깃 클론
2. 빌드
3. 도커 이미지 태그 변경

4. 도커 푸쉬


앱배포

Deployments

apiVersion: v1
items:
- apiVersion: apps/v1
  kind: Deployment
  metadata:
    labels:
      workload.user.cattle.io/workloadselector: apps.deployment-naver-rs-scraper-deploy-naver-rs-scraper
    name: deploy-naver-rs-scraper
    namespace: naver-rs-scraper
  spec:
    progressDeadlineSeconds: 600
    replicas: 1
    revisionHistoryLimit: 10
    selector:
      matchLabels:
        workload.user.cattle.io/workloadselector: apps.deployment-naver-rs-scraper-deploy-naver-rs-scraper
    strategy:
      rollingUpdate:
        maxSurge: 25%
        maxUnavailable: 25%
      type: RollingUpdate
    template:
      metadata:
        creationTimestamp: null
        labels:
          workload.user.cattle.io/workloadselector: apps.deployment-naver-rs-scraper-deploy-naver-rs-scraper
        namespace: naver-rs-scraper
      spec:
        affinity: {}
        containers:
        - image: 172.10.30.11:5000/dslee/scraper_trade_rs_stream:v0.1
          ports:
          - containerPort: 8501
          imagePullPolicy: Always
          name: container-0
          resources: {}
          securityContext:
            allowPrivilegeEscalation: false
            privileged: false
            readOnlyRootFilesystem: false
            runAsNonRoot: false
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        schedulerName: default-scheduler
        securityContext: {}
        terminationGracePeriodSeconds: 30
kind: List
metadata:
  resourceVersion: ""

Service

apiVersion: v1
kind: Service
metadata:
  name: svc-naver-rs-scraper
  namespace: naver-rs-scraper
spec:
  selector:
    workload.user.cattle.io/workloadselector: apps.deployment-naver-rs-scraper-deploy-naver-rs-scraper
  ports:
    - name: http
      port: 8501
      protocol: TCP
      targetPort: 8501
  type: ClusterIP

Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
  name: ingress-naver-rs-scraper
  namespace: naver-rs-scraper
spec:
  ingressClassName: nginx
  rules:
  - host: naver-rs-scraper.apps.lab3.dslee.lab
    http:
      paths:
      - backend:
          service:
            name: svc-naver-rs-scraper
            port:
              number: 8501
        path: /

참고

통신검증 예시 - 외부파드에서 서비스 포트 체크

kubectl run tmp-shell -n naver-rs-scraper --rm -it --image=busybox -- /bin/sh
wget -qO- http://svc-naver-rs-scraper:8501

댓글

이 블로그의 인기 게시물

10.15 부동산 대책, 오피스텔도 LTV 40%인가요? 혼선 정리

Kubernetes Pod Pending 해결법: FailedScheduling 원인별 실전 점검 가이드

애플 비전 프로 새 밴드 착용감 어떨까? Dual Knit Band 착용 경험 리뷰