커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3-8. 웹 스크래핑 > 수강 중 질문입니다.
undefined주차
북마크
조*호
댓글
5
추천
1
조회수
13
조회수
13
답변 완료


스파르타 즉문즉답

네이버 영화 페이지의 html 을 불러오는 부분인데요,

강의 내용 중에서, 위의 사진처럼 2번에 나눠서 데이터를 정리했어요.

(soup.select 로 받아온 데이터를 다시 반복문을 돌려서, 원하는 부분만 골라냈어요)



그런데 아래와 같이 반복문을 돌리지 않고도

바로 원하는 부분만 선택에서 불러와도 결과가 똑같아 보여서요. 그래서 해봤더니

출력이 되긴 되는데, 위에서 처럼 줄바꿈 형태로 정리되지 않고

일단 다 이어붙인 형태로 출력이 되더라고요.


■ 질문1 : for 문을 사용하지 않아서 이렇게 나오는건가요?

: for문을 사용한 줄바꿈 정리된 출력값은 리스트형태의 데이터인가요?


그래도 한글로 된 영화제목 자체는 있으니까 이 결과값에 .text 명령을 붙이면 되지 않을까하여 실행해보니

결과값에 'text' 특성이 없다는 에러가 뜨더라고요. 아마 당신은 요소들의 리스트를 하나의 요소처럼 취급하고 있을 것이다.


■ 질문2 : 눈으로 보기에는 한글 텍스트가 결과값에 있음에도, 프로그램에서 'text' 특성으로 인식하지 않는 이유가 무엇인지?




import requests
from bs4 import BeautifulSoup

headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

#old_content > table > tbody > tr:nth-child(3) > td.title > div > a
#old_content > table > tbody > tr:nth-child(4) > td.title > div > a

movies = soup.select('td.title > div > a')

print(movies.text)




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴