-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
2-6-2_new 질문
19.03.23 23:26 작성 조회수 104
0
아래와 같이 복사 해서 실행하였는데
결과는 에러가 나옵니다. 도와 주세요..
< html >
< body >
< div id = " foods " >
< h1 > 안주 및 주류
< ul id = " fd-list " >
< li class = " food hot " data-lo = " ko " > 닭 도리탕
< li class = " food " data-lo = " jp " > 돈까스
< li class = " food hot " data-lo = " ko " > 삼겹살
< li class = " food " data-lo = " us " > 스테이크
< ul id = " ac-list " >
< li class = " alcohol " data-lo = " ko " > 소주
< li class = " alcohol " data-lo = " us " > 맥주
< li class = " alcohol " data-lo = " ko " > 막걸리
< li class = " alcohol high " data-lo = " cn " > 양주
< li class = " alcohol " data-lo = " ko " > 동동주
Traceback (most recent call last):
File "/Users/Apple/section2/download2-6-2.py", line 14, in
print("1", soup.select("li:nth-of-type(4)")[1].string) #각 li 태그 그룹의 4번째 요소 선택
IndexError: list index out of range
[Finished in 0.659s]
첨부 파일 복사본
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)
print("1", soup.select("li:nth-of-type(4)")[1].string) #각 li 태그 그룹의 4번째 요소 선택
print("2", soup.select_one("#ac-list > li:nth-of-type(4)").string)
print("3", soup.select("#ac-list > li[data-lo='cn']")[0].string)
print("4", soup.select("#ac-list > li.alcohol.high")[0].string)
param = {"data-lo": "cn", "class": "alcohol"}
print("5", soup.find("li", param).string)
print("6", soup.find(id="ac-list").find("li",param).string)
for ac in soup.find_all("li"):
if ac['data-lo'] == 'us':
print('data-lo == us', ac.string)
답변을 작성해보세요.
0
좋은사람
지식공유자2019.03.25
안녕하세요. 오근님
해당 2-6-2는 오류가 나는 것이 맞습니다.
https://github.com/eunki7/python_create_app_1/blob/master/section2/2-6-2_new_1.py
수정 후 새로운 파일을 업로드 한 상태입니다.
링크 가셔서 확인하시면 실행됩니다.
감사합니다.
답변 1