TigerCow.Door

안녕하세요. 문범우입니다.

오랜만에 파이썬으로 필요한 프로그램을 만들어 공유하려고 글 작성합니다.

소개해드리고자 하는 프로그램은


중고나라에서 키워드 검색후 게시글 크롤링 및 메일 발송

기능을 가진 프로그램입니다.


모든 소스코드는 아래의 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로 반환 받아 그 내용 중 상품 가격을 추출할 수 있다면 매우 활용적일 수 있습니다.

인공지능 분야에서도 자연어처리 분야에 대해 지식이 필요할 것 같은데, 혹시 관련되서 내용을 아시거나, 다른 방법으로 해당 문제를 해결할 수 있는 방안에 대해서 아신다면 댓글 부탁드립니다!


블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc

 

안녕하세요. 문범우입니다.

최근 파이썬을 활용할 일이 많이 없었는데, 엊그제 문득 필요한게 생각나서 후다닥 파이썬으로 만들어보았습니다.


뭐라고 이름을 지어야할지 모르겠는데..

많은 분들도 만들어서 사용하시기도 하는 것으로 알고 있습니다.

제가 자주 보는 커뮤니티에서의 특정 게시판 상위 n개에 대해서 크롤링하여 링크를 포함한 헤드라인만 정해진 시각에 제 메일로 보내는 프로그램입니다.


저는 OKKY라는 커뮤니티에서 스터디, 뉴스, 행사에 관련된 3개 게시판에 대해 상위 5개 또는 3개의 글을 정해진 시각(오전, 점심, 오후)에 메일로 보내도록 하였습니다.


메일 내용을 더 꾸밀 수도 있겠지만..

일단은 심플하게 아래와 같이 메일이 전송됩니다 :)




실제로 이렇게 해두고 나니, 정해진 시각에 한번쯤 더 쳐다보게 되고 요새 바빠서 다양한 행사에 대해 관심가지지 못하고 있는데 이를 보완할 수 있을 것 같다는 생각이 듭니다.


관련 코드는 github에 올려두어 아래 링크에서 확인해보실 수 있습니다.


https://github.com/doorBW/event_crawl


코드에서도 확인하실 수 있으며, 사용된 내용들은 크게


1. requests와 bs4를 이용한 웹 크롤링

2. SMTP 서버를 통한 메일 보내기

3. crontab 활용하여 일정시간에 쉘스크립트 실행시키기


입니다. 각각에 대해서는 구글에 검색해보시면 다양한 자료를 찾아보실 수 있으니 추가적인 설명은 접어두도록 하겠습니다.


코드가 깔끔할지는 모르겠으나, 필요하신분들 참고하셔도 될 것 같습니다.

추가적으로 궁금한 점등의 문의사항은 언제든 댓글이나 카톡, 이메일로 연락주세요 :)

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc