이번에는 기본 URL 에서 크롤링 하려고 찾은 링크들을 파일에 저장을 하려고 합니다. 멀티 프로세싱 혹은 멀티 쓰레딩 작업을 통해서, 하나의 과정은 링크를 찾아 파일에 넣어 저장하고, 다른 하나의 과정은 이렇게 찾은 링크들을 크롤링하게 하려고 합니다. 여기에서 찾은 링크를 파일에 저장을 할 시에 중복되는 링크도 존재하기 마련입니다. 그래서 그런것들의 중복 크롤링을 막기 위해, 애초에 크롤링할 파일에 해당 링크 URL 이 존재하면 추가적으로 append 하지 않게 하면 됩니다. 시작해 볼까요?
우선 이미 만들어 둔 파일에 링크를 더해가는 함수를 정의하겠습니다. ▼
append 모드로 해당 경로를 열어줍니다. 그리고 이것을 file 로 명명하겠습니다.▼
파일을 열어 전달해 줄 데이터 값을 넣고 뒤에는 개행문자(다음행으로 넘기는 엔터값에 해당)를 넣어주고 써줍니다.▼
이번에는 파일의 내용을 삭제하는 함수를 정의하겠습니다. 여기에는 data 는 전달해 줄 필요가 없습니다. 내용을 지울테니 뭔들 전달봐야.. 삭제를 해야할테니까요.▼
마찬가지리로 이번에는 쓰기('w')모드로 파일을 열어서▼
아무 작업도 하지 않는다는 의미로 'pass' 는 넣어 줍니다. 무슨말이냐면, 동일한 파일명을 가진 파일을 만났을 때 덮어쓰기를 해버리면 파일의 내용은 전부 날아가게 됩니다. 그러면 파일은 존재하지만, 내용물은 전부 삭제된 거와 마찬가지가 되기 때문입니다. 아래 코드에서 'pass' 를 넣어주지 않으면 에러가 발생할 수 있습니다.▼
앞으로 몇개의 함수를 더 정의하고 실제 크롤링으로 들어가 보도록 하겠습니다. 조금 지루하겠지만, 천천히 읽어보시기 바랍니다. 수고하셨습니다.
'Programming > Python Web Crawler for intermediate learners' 카테고리의 다른 글
Web Crawler 006 - Creating the spider - 스파이더 만들기. (4) | 2016.03.25 |
---|---|
Web Crawler 005 - Parsing HTML and Find Links - HTML 파싱 및 링크 찾기. (3) | 2016.03.21 |
Web Crawler 004 - Accelerate Crawling by avoiding repetition - 중복을 회피하여 크롤링 속도 개선하기. (0) | 2016.03.21 |
Web Crawler 002 - Creating Crawled files and Queue (1) | 2016.03.15 |
Web Crawler 001 - Creating a New Project (5) | 2016.03.14 |