웹 스크래핑(web scraping)은 웹 페이지에서 우리가 원하는 부분의 데이터를 수집해오는 것을 뜻합니다.
링크: https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303
크롬 브라우저에 페이지를 띄우고 개발자도구를 열어 HTML 구조를 파악한다.
💡 개발자도구 Elements 탭에서 각 구역을 접어가며 점점 상위 요소를 파악해 id를 갖는 요소까지 올라가면 된다.
HTML 구조를 파악하는 데 도움을 주는 beautifulsoup4
패키지를 설치한다.
(beautifulsoup
은 옛날 버전의 패키지로 호환이 안되므로 꼭 beautifoulsoup4
를 받아야 합니다.)
그리고 코드 큰 구조를 작성했다.
BeautifulSoup 메소드
select()는 조건을 만족하는 모든 요소를 리스트에 담아 반환하고,
select_one()은 그 중 가장 위에 나오는 요소를 반환합니다.
괄호()안 선택자는 css와 동일.
for movie in movies:
# movie 안에 a 가 있으면,
# (조건을 만족하는 첫 번째 요소, 없으면 None을 반환한다.)
a_tag = movie.select_one('td.title > div > a')
print(a_tag)
for movie in movies:
# movie 안에 a 가 있으면,
a_tag = movie.select_one('td.title > div > a')
if a_tag is not None:
# a의 text를 찍어본다.
print (a_tag.text)
반복문이 돌아갈 때 조건에 맞지 않는 건 None으로 반환되는 점이 자바스크립트와 다르다.
if문이 if a_tag is not None: 과 같은 영어 문장의 꼴인 점도 재밌다.