파이썬 챌린지를 하는 와중에 휴일을 줄거라곤 생각지도 못했는데 그래도 바쁘게 달려와서 그런지 니꼬쌤이 하루는 쉬어가는 시간이라해서 일요일은 푹 쉬었다.
월요일부터 다시 과제가 시작되었는데 웹 스크래핑이라는 주제로 수업이 시작되었다.
웹 크롤링을 처음 다뤄보기도하고 생소했는데 니꼬쌤의 배려인지 과제 제출 기한을 이틀로 설정해두어서 이해하면서 할 수 있었던 것 같다.
웹 크롤링
기본적으로 파이썬의 웹 크롤링은 beautifulSoup로 진행되었다.
beatifulSoup는 HTML과 XML 문서들의 구문을 분석하기 위한 파이썬 패키지로 HTML로부터 데이터를 추출하기 위해 사용할 수 있는 파싱된 페이지의 파스 트리를 만드는데, 이는 웹 크롤링에 유용하다.
from requests import get
from bs4 import BeautifulSoup
지난 수업에 배웠다 get 메서드와 BeautifulSoup를 사용하면 쉽게 웹사이트의 코드를 이용하여 내용을 스크랩 해올 수 있다.
이번 수업에서는 웹 스크랩을 위한 BeautifulSoup 함수로 find_all과 find 함수를 사용했다.
find
find 함수는 조건에 만족하는 태그를 하나만 가져오는 함수이다.
title = anchor.find('span', class_="title")
수업을 진행하며 다음과 같은 코드를 작성했었는데,
title 이라는 변수에 span이라는 태그 중 title이라는 클래스를 가져오라는 뜻인 코드이다.
class="title" 이 아닌 class에 '_'가 붙는 이유는 파이썬에서 class는 이미 파이썬에서 쓰고있는 키워드이기 때문에 class="title"을 사용한다면 오류가 나기 때문이다.
find_all
find_all 함수는 find와 달리 조건에 만족하는 태그가 있을경우 해당하는 태그를 전부 가져오는 함수이다.
jobs = soup.find_all('section', class_="jobs")
for job_section in jobs:
job_posts = job_section.find_all('li')
다음 코드를 보면, jobs라는 변수에 해당 페이지에서 section 태그 중 class 이름이 jobs라는 태그를 전부 가져오라는 코드라고 설명할 수 있다.
하단에 job_posts 역시 'li'에 해당하는 태그를 전부 가져오는 함수라고 볼 수 있다.
처음으로 웹 크롤링 beatifulSoup를 배웠는데, 웹 코드를 가져오는데 있어 굉장히 편리하고 신기했다.
언어의 다양한 기능들을 알아갈때마다 새로운 경험을 쌓는 것 같아 더 다양한 기능들을 사용해보고 싶은 욕구가 샘솟았다..ㅋㅋ
'Language > Python' 카테고리의 다른 글
파이썬 셀레니움(Selenium) 모바일 환경으로 접속해보기 (0) | 2023.05.02 |
---|---|
노마드코더 파이썬 챌린지 수료 및 후기 (0) | 2023.04.04 |
노마드코더 파이썬챌린지 6일차 (0) | 2023.03.19 |
노마드코더 파이썬 챌린지 5일차 (0) | 2023.03.18 |
노마드코더 파이썬 챌린지 4일차 (0) | 2023.03.17 |