본문 바로가기

Develop

네이버 쇼핑 크롤링: Selenium과 Scrapy를 활용한 쉬운 데이터 수집 방법

네이버 쇼핑 크롤링: 검색 키워드 동적 처리 방법

안녕하세요.

이전 포스트 Selenium과 Scrapy를 이용해 네이버 쇼핑 크롤링하기에서 네이버 쇼핑몰에서 크롤링을 수행할 수 있는 방법을 간단히 소개해드렸습니다. 예상보다 많은 분들이 해당 글에 관심을 가져주셨고, 피드백을 통해 개선해야 할 점을 알게 되어 감사드립니다.

이번 포스트의 목표

이번 포스트에서는 검색 키워드를 코드 외부에서 명령어 인자로 받아, 크롤링 대상을 보다 유연하게 지정할 수 있도록 하는 방법을 소개하겠습니다. 이를 통해, 크롤링할 때마다 코드를 수정하지 않고도 원하는 키워드를 입력하여 네이버 쇼핑몰에서 데이터를 추출할 수 있습니다. 예를 들어, 아래와 같이 키워드를 명령어 인자로 전달할 수 있습니다:

$ scrapy crawl naver_shopping -o products.json -a keyword=에어컨

 

이 방법을 사용하면 코드 내에서 검색 키워드를 하드코딩하는 대신, 명령어 인자로 전달된 값을 사용하여 검색할 수 있습니다. 이는 코드 수정 없이 다양한 키워드를 테스트할 수 있게 해 주며, 코드의 유지보수성을 높여줍니다.

코드 수정 내용

아래는 코드에서 변경된 부분입니다:

 

def init(self, args, *kwargs):
    super(NaverShoppingSpider, self).init(args, *kwargs)
    self.keyword = kwargs.get('keyword')

...

    search_input.send_keys(self.keyword)
    search_input.send_keys(Keys.ENTER)

 

이전에는 검색 키워드가 코드 내에 하드코딩되어 있었지만, 이제는 keyword 인자를 통해 동적으로 전달받아 검색할 수 있게 되었습니다. 이렇게 하면 매번 코드를 수정할 필요 없이, 명령어 인자만으로 다양한 키워드에 대한 검색을 수행할 수 있습니다.

실행 예시

코드 변경 후, 다음과 같이 명령어에서 검색 키워드를 지정하여 크롤링을 실행할 수 있습니다:

$ scrapy crawl naver_shopping -o products.csv -a keyword=갤럭시
$ scrapy crawl naver_shopping -o products.csv -a keyword=테슬라
$ scrapy crawl naver_shopping -o products.csv -a keyword=책상

 

각 명령어에서 keyword 인자를 통해 다양한 키워드를 입력할 수 있으며, 이에 따라 크롤링 결과가 저장된 products.csv 파일에 다른 검색 결과가 저장됩니다.

마무리

이번 포스트에서는 검색 키워드를 동적으로 지정하는 방법을 소개했습니다. 이 방법은 코드를 보다 유연하고 확장 가능하게 만들어 줍니다. 추후에는 더 많은 기능을 추가해 네이버 쇼핑 크롤링 프로젝트를 확장할 예정이니, 많은 관심 부탁드립니다.

최종 결과물은 GitHub 저장소에서 확인할 수 있습니다. 프로젝트에 대한 의견이나 개선 사항이 있다면 언제든지 피드백을 주시면 감사하겠습니다.

 

https://youtu.be/vLQKco1iOkA

 

반응형