본문 바로가기

Programming/Python Web Crawler for intermediate learners

Web Crawler 009 - Crawling Pages You want to crawl - 크롤링 하고자 하는 페이지 링크들 크롤링하기.



오랜만에 글을 쓰는 것 같네요. 이번에는 지난 시간까지 만들어 둔 코드부분에 크롤링을 할 수 있게 하는 함수 crawl_page() 부분을 추가해 주도록 하겠습니다.


아래와 같이 함수를 정의해 주겠습니다. thread_name, page_url 을 인자로 받도록 하겠습니다.▼

만약에 전달 받은 page_url 값이 기존에 crawled 되어 있는 리스트에 존재하고 있다면, 중복해서 또 크롤링 해 줄 필요가 없겠죠? 그래서 없는 경우에만 크롤링할 수 있도록 조건을 달았습니다.▼

크롤링된 값에 없는 url 이면, 이제부터는 해당 url 을 크롤링 할 것이라고 사용자에게 알려주는 문구를 보여주게 하고 있습니다. 물론 크롤링 할 page_url 이 어떤 것인지도 함께 표기하도록 하였습니다. ▼

그리고 waiting list (queue) 에 현재 몇개의 값이 대기하고 있고, 현재까지 몇개의 페이지를 크롤링 하였는지도 함께 확인할 수 있게 보여주게끔 하였습니다. ▼ 

해당 url 을 앞으로 크롤링해야할 웨이팅리스트에 추가해 주도록 하였습니다.▼

그리고 해당 url 을 지워줍니다. ▼

그리고 나서는 해당 url 을 crawled 리스트에 추가해 줍니다. 중복 크롤링 하지 않게 하기 위함입니다.▼

추가해 주었으니 실제 리스트 파일들을 업데이트 해줍니다.▼

여기까지가 crawl_page() 부분입니다.