inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

프로젝트: 크롤링 + 엑셀 보고서까지 자동으로 만들며 익히는 프로그래밍1 (업데이트)

지마켓 크롤링 시 select와 select_one 구분

367

kaichem06

작성한 질문수 2

0

선생님 안녕하세요 너무 유익한 강의로 많이 배우고 있습니다. 감사합니다. 

10분 20초에 나오는 gmarket 크롤링하는 부분에 대해서 궁금증이 있어 문의드립니다. 

선생님 답안을 보기 전에 저는 

bestlists=soup.select('div.best-list')

bestitems=bestlists[1]

products=bestitems.select('ul > li')

for index, item in enumerate(products):

    title=item.select('a.itemname')

    price=item.select('div.s-price > strong')

    print(index+1, title.get_text(), price.get_text())

이렇게 for문 안에서 ul>li로 상품하나를 뽑은 상태니까 a태그에 itemname은 하나뿐이기 때문에 select_one 대신에 select를 사용하였는데 get_text()했을때 오류가 뜹니다. 하나뿐이니까 select로 해도 나와야되는게 아닐지..궁금합니다! 너무 좋은 강의 감사합니다.

웹-크롤링 python

답변 1

0

잔재미코딩 DaveLee

안녕하세요. 우선 좋은 강의라고 몇번이나 말씀을 해주시니, ㅎㅎ 정말 ... 힘이 되네요.

저도 이 기능을 처음 익힐 때, 가끔 실수한 이슈인데요.

select() 는 리턴값이 리스트입니다. 그러다보니 예를 들어서, 작성하신 코드처럼

title=item.select('a.itemname')

title.get_text() <--- 이렇게 하게 되면 리스트변수.get_text() 가 되는 것이예요. 

get_text() 라는 메서드는 리스트 변수 안에 있는 각 아이템 객체가 가지고 잇는 것이죠

그래서 리스트변수에서 각 아이템을 빼온 후에 get_text() 를 하셔야 하고요. 각 아이템을 빼는 일은 for 문을 사용하시면 됩니다. (기존 영상에서 유사한 패턴을 많이 보여드렸죠). 그래서 예를 들어 다음과 같이 진행하셔야 하고요. 만약에 CSS selector 가 웹페이지와 적절히 매칭이 안된다면, 에러가 날수도 있겠죠. 적절하다면, 출력이 될 것입니다.

title=item.select('a.itemname')

for item in title:

    print(item.get_text())

감사합니다.

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

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

94

1

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

0

89

1

문제 파일

0

78

1

pdf 파일 내 코드 복붙시 공백

0

291

1

데이터 저장 강좌 문의 건

0

95

1

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

0

242

1

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

0

132

1

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

0

187

1

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

0

139

2

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

0

1546

2

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

0

459

2

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

0

266

1