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

테디베어123님의 프로필 이미지
테디베어123

작성한 질문수

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

패턴으로 실습하며 익히기: HTML/CSS 이해를 바탕으로 크롤링하기

패턴으로 실습하며 익히기:html/css 이해를 바탕으로 크롤링하기

작성

·

503

0

- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)
- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다
- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

<div class="layer_body" data-translation="true"> <p>금융당국이 급증하는 가계부채 증가세를 막기 위해 아파트 잔금대출에도 소득을 따져 대출한도를 정하는 총부채상환비율(DTI)을 적용하는 방안을 유력하게 검토하고 있다.</p> <p>지금은 집값을 기준으로 대출한도를 매기는 주택담보인정비율(LTV) 규제만 적용돼 소득이 없어도 집값의 70%를 빌려 잔금을 치르는 게 가능하다.</p> <p>앞으로 잔금대출에 DTI가 적용되면 소득이 없는 사람은 집값의 70% 대출 받는 게 어려워진다.</p> </div>

 

안녕하세요.

지금 강의 중인 내용에 보면 class의 div 값과 다르게 2개의 값이 연이어 나오는데요.

이런 경우에는 어떻게 입력하면 될까요?

복사해서 넣어보고 했는데 계속 오류가 뜹니다.

 

import requests

from bs4 import BeautifulSoup

res = requests.get('https://v.daum.net/v/20170615203441266')

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

mydata = soup.find_all('div','layer_body' data-translation='true')

mydata.get_text()

 

이런식으로 연달아서 넣으면 되는건지...

답변 부탁드려요^^

 

답변 2

0

import requests

from bs4 import BeautifulSoup

res = requests.get('https://v.daum.net/v/20170615203441266')

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

items = soup.select('div.news_view.fs_type1 > div.article_view > section > p:nth-child(1)')

for item in items:

print (item.get_text())

items = soup.select('div.news_view.fs_type1 > div.article_view > section > p:nth-child(2)')

for item in items:

print (item.get_text())

items = soup.select('div.news_view.fs_type1 > div.article_view > section > p:nth-child(3)')

for item in items:

print (item.get_text())

items = soup.select('div.news_view.fs_type1 > div.article_view > section > p:nth-child(4)')

for item in items:

print (item.get_text())

 

다다음 강의에 css selector로 해보다가가 비슷하게 방법을 찾았어요

1-4 까지 반복되는걸 좀 편하게 바꾸고 싶은데 아직 공부가 부족한지 자꾸 오류가 나네요 ㅠㅠ

앞으로는 모르는 내용있으면 다음 강의를 좀 들어볼게요 ㅎㅎ 감사합니다

제 생각엔 이거 이전 강의에 배웠던 방법인 속성이 두개일 때 방법으로 ('div',attrs={'class':'layer_body' , 'data-translation':'true'}) 이걸 find함수 안에 쓰시면 될거같아요

0

안녕하세요. 답변도우미입니다.

네 연달아 넣으시면 안됩니다. ㅎㅎ 강의내에서 보여드린 예제 이외에 다른 예제를 답변드리려면 저희도 개발을 직접 해봐야 해서요 이 부분은 크롤링 특성상 양해를 부탁드리고요. div.layer_body 와 같은 방식으로 해보시면 좋을 듯 한데요. 우선은 강의 끝까지 들으시면서 각각의 다양한 케이스에 대해 연습을 해보신 후에 해보시면 훨씬 이해가 쉬우실 것 같아요.

감사합니다.

테디베어123님의 프로필 이미지
테디베어123

작성한 질문수

질문하기