inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

실전 크롤링과 강력한 크롤링 기술 팁2 (업데이트)

네이버 사이트 크롤링 (연습) 오류

2164

lygmedi

작성한 질문수 16

0

안녕하세요...

뻔한 낮은 수준질문일 수 있지만 기 질의응답 내용을 보고도 제 문제와 연결지어 생각이 잘 안되서요...

네이버 GNB 메뉴 리스트를 크롤링해보고 싶었습니다.

■개발자모드에서 (노랑 바탕칠 부분)이 해당 영역을 뜻하는것을 확인하고

■아래와 같이 작성해보았는데

import requests

from bs4 import BeautifulSoup

res = requests.get('https://www.naver.com/')

soup = BeautifulSoup(res.content,'html.parser')

titles = soup.find('div', id='gnb')

for title in titles:

    print(title.get_text())

■ 이런 오류문구가 뜨는데...  GNB 영영을 텍스트로 가져올수 없다 라고 하는거같은데

왜 어떤 차이점 떄문에 못가져오는지 궁금합니다..

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-24-15ace1329085> in <module>
      7 titles = soup.find('div', id='gnb')
      8 for title in titles:
----> 9     print(title.get_text())

~\anaconda3\lib\site-packages\bs4\element.py in __getattr__(self, attr)
    869             raise AttributeError(
    870                 "'%s' object has no attribute '%s'" % (
--> 871                     self.__class__.__name__, attr))
    872 
    873     def output_ready(self, formatter="minimal"):

AttributeError: 'NavigableString' object has no attribute 'get_text'

답변 부탁드려요

감사합니다.

python 웹-크롤링

답변 1

0

잔재미코딩 DaveLee

보통 이런 경우는 해당 태그를 가져오지 못했을 때입니다.

그래서 title 이 None 이되고, 그러다보니 거기에서 get_text() 를 했을 때, 해당 함수(메서드)가 없어서 에러를 내는 것이예요.

제가 각자 원하시는 크롤링 코드를 직접 작성하면서, 테스트를 해볼 수는 없지만, 대략적으로 해당 태그가 동적으로 생성이 된다든지 할 때, 크롬 개발자 모드에서는 분명 나타나지만, 크롤링이 안될 수 있습니다. 크롬 개발자 모드보다, 해당 웹페이지에서 오른쪽 클릭해서, 소스보기 한 다음에, 해당 소스에서 해당 태그가 보이는지 확인해보시면 아실 수 있으실 것 같아요.

동적 페이지의 경우에는 selenium 이라는 별도 크롤링 기술로 크롤링을 해야 하는데 난이도가 조금 있어요. 그래서 이 부분은 별도 강의인 '현존 최강 크롤링 기술: selenium/scrapy 기술' 강의로 본 강의를 어느정도 소화하신 분들에 한해서 제공하고 있습니다. 단계가 있어서요. 이 부분도 참고해보시면 좋을 것 같습니다.

감사합니다.

크롤링, 영상을 따라해도 제미나에게 물어봐도 안되요

0

33

1

정규표현식 및 여러 코드 꼭 외워야 하나요?

0

39

1

리스트 함수형도 정수 데이터 받을 수 있나요?

0

45

1

크롤링 관련 질문

0

63

1

문제 답이 없는 버전은 없나요?

0

74

1

requests, BeautifulSoup 임포트 부분에 대해 문의드립니다.

0

83

1

업데이트 강의

0

97

2

선생님 강의중에서 sqlite3 강의를 제공한 강의가 있나요?

0

123

2

연습용 예제 파일

0

76

1

lxml 관련 오류

0

106

1

SAVE Request 창 띄우는 법

0

92

1

포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다. 2

0

75

1

포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다.

0

96

1

예제 2, 4, 6에 대한 풀이 방식 질문.

0

89

1

문제 파일

0

78

1

pdf 파일 내 코드 복붙시 공백

0

291

1

데이터 저장 강좌 문의 건

0

95

1

" " 와 ' '의 차이를 알고 싶습니다

0

243

1

Exercise 22. 문자열 다루기 (strip)

0

132

1

list함수로 리스트 선언하면 실패하는데 이유는 무엇입니까?

0

187

1

셀 삽입후 바로 기입이 가능합니까?

0

139

2

주피터 노트북 마우스 스크롤? 오류

0

1550

2

등호 2개('==')의 의미가 뭐죠?

0

460

2

페이지가 넘어갈 때 url 변하지 않는 경우

0

266

1