inflearn logo
강의

講義

知識共有

[リニューアル] Python入門とクローリング基礎ブートキャンプ [Python、Web、データ理解の基本まで] (アップデート)

CSSセレクタを使ってクローリングする1(アップデート)

크롤링 초보

解決済みの質問

292

kwonokun

投稿した質問数 4

0

안녕 하세요. 파이썬 크롤링 베이직 강의를 듣고 있는 사람입니다.

아래와 같은 에러를 해결 하려면 어떻게 해야 하나요??

패턴으로 실습하며 익히기: CSS selector 사용해서 크롤링하기1

https://www.inflearn.com/course/Python-crawling-basic/lecture/21277

 

아래와 같이 파일 공유 드립니다.

 

import requests

from bs4 import BeautifulSoup

 

res = requests.get('https://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=101&oid=011&aid=0003599217')

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

 

data= soup.select("#articleBodyContents > strong.media_end_summary")

 

print (data)

""" 

print (data) 했을 경우

 --> 결과 [<strong class="media_end_summary">국토부, 다음주 초 세부안 발표</strong>]

 "국토부, 다음주 초 세부안 발표" 이렇게 나오게 하려면 어떻게 해야 하나요??

 

 

print (data.strip()) , print (data.get_text())  을 사용 했을 경우 아래와 같이 에러 발생

 

AttributeError                            Traceback (most recent call last)

<ipython-input-44-87a19c7b0277> in <module>

      8 

      9 print (data)

---> 10 print (data.strip())

     11 

     12 data1= soup.find_all("#articleBodyContents > strong.media_end_summary")

 

AttributeError: 'list' object has no attribute 'strip'

 

""" 

 

data1= soup.find_all("#articleBodyContents > strong.media_end_summary")

for a in data1:

    print(a)

        

data2= soup.find("#articleBodyContents > strong.media_end_summary")

print(data2) 

 

"""

find, find_all을 사용 하였으나 아래와 같이 None 이라고 됩니다

이유가 궁금합니다

None

 

"""

python 웹-크롤링

回答 2

0

kwonokun

감사합니다

0

funcoding

안녕하세요.

우선 첫번째 질문에 답변드리면, print (data[0].text) 하시면 원하시는 텍스트만 출력이 될 듯합니다.

select()를 실행하시면, 결과값이 파이썬 리스트 형태로 나오기 때문에, 각 아이템을 가져오고 싶으시다면, 인덱스 번호를 명시적으로 넣어야 합니다. 혹시 이 부분이 아직 익숙하지 않으시다면, 강의에서 제공해드리고 설명드렸던 파이썬 기초 문제를 꾸준히 풀어보시면 좀더 이해가 빠르실 것 같아요.

 

두번째 질문에 대해서는 결과적으로는  다음에 해당하는 CSS selector가 해당 HTML 파일에 없기 때문인데요.

"#articleBodyContents > strong.media_end_summary"

이 부분은 실제로 코드를 제가 작성해드리고, 심지어 동영상으로라도 찍어서 왜 이 부분이 없는지 설명드리기 까지는 명확히 이해하기 어려우실 수도 있어요. 그런데, 강의에서 예제로 쓰인 링크가 아닌, 각자 크롤링을 원하시는 링크와 관련해서, 어떤 부분이 잘못되었는지를 설명드리려면, 결과적으로는 제가 크롤링을 원하시는 링크에 대해 크롤링 프로그램을 작성해드려야 하거든요.

res = requests.get('https://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=101&oid=011&aid=0003599217')

물론 그만큼하기에는 시간이 매우 부족하기도 하구요. 또 한분에 대해 이렇게 해드리면, 결과적으로 수강하신 모든 분들이 각자 원하는 사이트에 대해 크롤링 프로그램을 작성하기를 요청드리는 상황이 발생할 수도 있어서요. 어떤 분은 해드리고, 어떤 분은 안해드릴 수도 없고, 또 심지어 너무 시간이 부족해서, 제가 크롤링 프로그램을 작성에 지연이 발생하면 또다른 불만 아닌 불만이 발생할 수도 있어서요. 그래서 이 부분은 이정도 선에서 설명을 드리는 것에 대해 간곡히 양해를 부탁드립니다.

감사합니다.

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

0

33

1

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

0

40

1

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

0

46

1

크롤링 관련 질문

0

64

1

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

0

74

1

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

0

83

1

업데이트 강의

0

98

2

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

0

123

2

연습용 예제 파일

0

76

1

lxml 관련 오류

0

106

1

SAVE Request 창 띄우는 법

0

92

1

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

0

75

1

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

0

98

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

267

1