[Python]중고나라 크롤링 및 메일 발송 자동화
안녕하세요. 문범우입니다.
오랜만에 파이썬으로 필요한 프로그램을 만들어 공유하려고 글 작성합니다.
소개해드리고자 하는 프로그램은
중고나라에서 키워드 검색후 게시글 크롤링 및 메일 발송
기능을 가진 프로그램입니다.
모든 소스코드는 아래의 github주소에 공개되어있습니다.
https://github.com/doorBW/joonggonara_crawl
간단하게 활용 스택 및 배운점 등을 공유하겠습니다.
1. 활용 스택
- Python 3.7.1
- pyenv 및 virtualenv를 통한 가상환경설정
- Selenium / BeautifulSoup / smtplib / dotenv 라이브러리 활용
- ubuntu crontab 활용
위와 같은 언어 및 라이브러리를 활용하였습니다.
crawl.py 에서 중고나라 사이트에 접속하여 사전에 설정해놓은 키워드로 검색을 하고
50개씩 보기를 선택한 후에 중복 글쓴이를 제외한 나머지 게시글을 리스트로 만들어서 메일로 발송합니다.
해당 파일은 aws의 개인서버에 두고 crontab을 활용하여 정해진 시각에 실행되도록 설정하였습니다.
2. 배운 점
과거에 selenium을 활용해본적은 있으나, 이번에 보다 많이 활용해본 것 같습니다.
네이버 카페에서 게시글이 나오는 쪽이 iframe으로 설정되어 있어 selenium에서 frame도 바꿔주어야 했고,
50개씩 보기를 선택하면서 보다 활용도가 높았던 것 같습니다.
활용할수록 매우 재미있는 라이브러리 같아서, 여름쯤 시간내서 한번 더 깊게 공부해보면 재미있을 것 같습니다.
관련되서 재밌는 프로젝트들에 대해서 아시는게 있다면 알려주세요 :)
이 외에 다른 라이브러리나 ubuntu crontab 활용에 대해서는 과거에 사용해봤던 것과 동일했기 때문에 따로 언급하지 않겠습니다.
3. 더 공부해볼 점
사실상 게시글 제목을 중심으로 크롤링을 진행했지만, 그러한 제목에는 상품의 가격이 제대로 나와있지 않습니다.
가격 또한 쉽게 보려면 게시글에 들어가서 내용을 검토해야 하는데, 그렇게 하지 않은 이유는 게시글 내용에서도 가격이 정확하게 나와 있지 않기 때문입니다.
중고나라에서 가격을 적는 칸이 있지만, 사실 대다수가 지키지 않고 있는 실정입니다.
이에 따라서 게시글 내용을 text로 반환 받아 그 내용 중 상품 가격을 추출할 수 있다면 매우 활용적일 수 있습니다.
인공지능 분야에서도 자연어처리 분야에 대해 지식이 필요할 것 같은데, 혹시 관련되서 내용을 아시거나, 다른 방법으로 해당 문제를 해결할 수 있는 방안에 대해서 아신다면 댓글 부탁드립니다!