인프런 커뮤니티 질문&답변

봉하윤님의 프로필 이미지

작성한 질문수

파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기

BeautifulSoup 사용법 및 간단 웹 파싱 기초(2)

string관련 오류..

작성

·

613

0

Traceback (most recent call last):

File "E:WorkSpacesection2download2-6-20.py", line 11, in

print("1",soup.select_one("li:nth-of-type(8)").string)

AttributeError: 'NoneType' object has no attribute 'string'

[Finished in 0.175s]

제가 소스를 잘 못 입력한 줄 알고 올려주신 소스파일로도 실행 해보았는데 이런 오류가 떠요...

무엇이 잘못 된 것인가요?

답변 3

0

봉하윤님의 프로필 이미지
봉하윤
질문자

아 해결되었어요ㅎㅎ
파일을 c://로 옮겨서 실행해 보니깐 되요....!!
그런데 왜 같은 같은 폴더에 두면 실행이 안되고,
c드라이브로 옮겨야 실행이 되는 건 가요?
감사합니당

0

봉하윤님의 프로필 이미지
봉하윤
질문자

from bs4 import BeautifulSoup

import sys

import io

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')

sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

fp = open("food-list.html",encoding = "utf-8")

soup = BeautifulSoup(fp,"html.parser")

print(soup.select_one("li:nth-of-type(8)"))

print("2", soup.select_one("#ac-list > li:nth-of-type(4)"))

라는 코드를 돌리면

None

[Finished in 0.186s]

이라는 결과가 나옵니다.

같은 폴더에는 food-list.html이라는 파일이 있고요ㅠㅠ

안주 및 주류

  • 닭도리탕
  • 돈까스
  • 삼겹살
  • 스테이크

  • 소주
  • 맥주
  • 막걸리
  • 양주
  • 동동주

답변 부탁드려요 =ㅠ

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

네 봉하윤님 안녕하세요.

소스코드드의 select_one("li:nth-of-type(8)") 이 선택자 부분에서

아무것도 선택되지 않았으므로(NoneType), 그 뒤에 .stirng 에서 no attribute ‘string’ 에러 메시지가 출력되는 것 입니다.

중간에

print(soup.select_one("li:nth-of-type(8)")) 이런 식으로 정확하게 엘리먼트를 가져왔는지를

나눠서 단위 테스트로 출력해보시면 쉽게 해결 가능하실 겁니다.

전체 소스코드를 다시 한 번 검토해보시고 안되시면 전체 예제 소스를 그대로 올려 주시면

테스트 해 본 후 알려드리겠습니다.

감사합니다.