joonggonara_crawl
셀레니움을 활용한 중고나라 크롤링 및 메일발송 자동화
1. 환경구성
추후 리눅스 서버에 두고 일정시간마다 자동으로 실행되게끔 해야하므로 이를 고려하며 환경세팅을 한다.
pyenv 및 virtualenv를 이용하여 파이썬 가상환경을 구성
python 3.7.1
네이버 카페는 셀레니움을 활용해야 한다. 관련 라이브러리를 설치한다.(requirements.txt 참고)
크롬 브라우저를 사용해야 하므로 드라이버를 설치한다.
(chromeDriver 폴더에 리눅스와 맥 드라이버 존재)
(설치 url:https://sites.google.com/a/chromium.org/chromedriver/)
셀레니움으로 크롤링할 때, 추후 실제로는 리눅스서버에서 자동으로 실행시킬 계획이기에 headless 크롬으로 크롤링을 진행한다.
중고나라 크롤링시에 글의 내용까지 참고해서 보려면 로그인 과정을 거쳐야 하는데, 여기서는 로그인 과정없이 중고나라 키워드 검색후 글 제목과 글쓴이에 대해서만 고려하여 내용을 정리하고 메일로 발송한다.
당연히 그 과정에서 글쓴이 중복은 배제한다.
2. 고민없이 코딩
crawler.py 참고
3.
더 고려해볼 수 있는 점
1. 글의 내용보고 가격 추출하기?
사실상 중고나라 크롤링시에 글의 내용을 보지 않는건 로그인 과정이 귀찮기도 하고 글 내용을 본다 한들 딱히 할 수 있는게 없기 때문이다. 가격을 보기위해 내용을 봐야하지만 이게 사람한테나 가능한일이지, 현재 중고나라 게시글을 보면 가격을 적어두는게 다 자기마음대로이기 때문에 컴퓨터한테 알아듣게 하기는 쉽지 않을 수 있다.
만약 인공지능, 자연어처리 기술을 활용하여 해당 게시글의 내용에서 가격만 추출하는 방법이 있다면 이를 활용해서 가격을 추출하여 글의 내용을 보는데 이유가 생길 수 있다.
이와 관련된 내용을 알거나 다른 해결방안을 안다면 누구든 이슈를 달아주면 감사하겠다,,,
2. 파일로 저장해두고 중복 글쓴이 배제
지금 코드는 단순히 크롤링 시점에서 글쓴이 중복을 예외처리한다.
헌데 하루에 2~3번 올라오는데 동일한 글들을 볼 필요는 없기에, 글쓴이를 txt 또는 json파일로 저장하고 크롤링시마다 참고하여, 이미 한번 확인했던 글이라면 예외처리하는 방법을 생각했으나,,,
귀찮아서 pass한다.
얼핏 생각한 걸로는 크롤링시에 날짜별로 txt 또는 json 파일을 만들게한다. 이미 만들어져있다면 내부 내용을 가져와서 크롤링한것과 비교, 크롤링한 곳에서 나온 글쓴이가 만들어진 파일안에 있다면 중복된 글쓴이 이므로 크롤링 값에서 배제시킨다. 만약 크롤링한 곳에서 나온 글쓴이가 만들어진 파일안에 없다면 해당 날짜 파일에 글쓴이를 추가한다. 이렇게해서 크롤링시 날짜 ~ 과거 5일정도로 반복하게끔하면 같은 글쓴이가 중복작성하는 글들을 피할 수 있을 것 같다.