inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

섹션 5 - 실전 크롤링과 강력한 기술 팁 2

해결된 질문

168

michael.shin

작성한 질문수 1

0

 강사가 실제 사용하는 자동 프로그램 소개 
 필요한 프로그램 설치 시연 
 데이터를 엑셀 파일로 만들기 
     엑셀 파일 이쁘게! 이쁘게! 
     나대신 주기적으로 파이썬 프로그램 실행하기 
 파이썬으로 슬랙(slack) 메신저에 글쓰기 
 웹사이트 변경사항 주기적으로 체크해서, 메신저로 알람주기 
 네이버 API 사용해서, 블로그에 글쓰기 
 자동으로 쿠팡파트너스 API 로 가져온 상품 정보, 네이버 블로그/트위터에 홍보하기 

위와 같이 크롤링된 결과에 대해서, 4~5행의 앞부분의 공란을 없애주기 위해서 아래와 같이 코딩을 합니다.

 

import requests

from bs4 import BeautifulSoup

res=requests.get("https://davelee-fun.github.io/blog/crawl_test")

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

section=soup.find("ul", id="dev_course_list")

titles=section.find_all("li", class_="course")

for i in titles:

print(i.get_text().split("[")[0].split("-")[1].strip())

 

강의 내용에서 strip(" ")이나 strip(' ')으로 하나, strip()으로 하나, 똑 같은 결과라고 설명하셨는대요

실제로 strip(' ')이나, strip(" ")으로 하면, 4~5행의 앞부분의 공백이 없어지지 않습니다.

이건 왜 그럴까요?

 

 

 

python 웹-크롤링

답변 2

1

잔재미코딩 DaveLee

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

파이썬의 strip() 함수는 문자열에서 양쪽 끝에 있는 공백을 제거하는 함수입니다. 하지만 strip(" ")strip() 사이에 약간의 차이가 있기 때문에 4~5행의 앞부분 공백이 없어지지 않는 이유는 아래와 같습니다.

1. **`strip()`의 동작 원리**:

strip()은 기본적으로 문자열 양 끝의 **모든 공백 문자**(띄어쓰기, 탭, 줄바꿈 등)를 제거합니다. 그래서 이 함수를 사용하면 모든 종류의 공백을 제거할 수 있습니다.

2. **`strip(' ')` 또는 strip(" ")의 동작 원리**:

strip(' ')는 **오로지 띄어쓰기 공백 문자**만을 제거합니다. 즉, 만약 해당 문자열에 탭(`\t`)이나 줄바꿈(`\n`) 등의 다른 공백 문자가 포함되어 있다면, strip(' ')으로는 제거되지 않습니다.

따라서, 4~5행의 앞부분에 탭, 줄바꿈 또는 다른 공백 문자가 있을 경우, strip(" ")으로는 제거되지 않지만, strip()을 사용하면 이 모든 공백 문자를 제거할 수 있습니다.

감사합니다.

잔재미코딩 드림

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. michael.shin님.

질문해주신 내용에 대한 답변과 비슷한 질문을 찾을 수 있었습니다. 우선 질문의 핵심을 다루기 위해 strip() 함수의 동작 방식에 대해 설명드리겠습니다.

strip() 함수는 문자열의 양쪽 끝에 있는 모든 공백을 제거합니다. 만약 strip(’ ‘)이나 strip(” “)을 사용하면 특정한 공백 문자 ’ ‘만 제거하려는 의도로 해석되지만, 이 함수는 기본적으로 모든 공백 문자를 제거합니다.

아래에서 참고할 수 있는 유사한 질문들이 있습니다:

  1. split 코드 오류
    이 게시물에서는 split 메서드와 관련된 문제를 다루며, 코드에서 발생할 수 있는 오류에 대해 논의합니다.

  2. 직접 작성해보며 익숙해지기: 크롤링 기본 연습문제 풀기 (업데이트) 4/5번 질문입니다
    여기서는 BeautifulSoup을 사용한 크롤링 후 데이터 접근에 대해 다룹니다.

  3. 섹션 4 마지막 강의 9분 30초
    BeautifulSoup을 활용한 다양한 크롤링 방법에 대해 설명합니다.

다시 한 번 핵심을 살펴보면, strip() 함수는 문자열의 양 끝에서 모든 유형의 공백을 제거하므로, 인자로 특정 공백 문자를 넣어 사용할 특별한 필요 없이 단수 strip()으로 충분합니다.

아래 코드를 참고해 주시기 바랍니다.

import requests
from bs4 import BeautifulSoup

res = requests.get("https://davelee-fun.github.io/blog/crawl_test")
soup = BeautifulSoup(res.content, "html.parser")
section = soup.find("ul", id="dev_course_list")
titles = section.find_all("li", class_="course")

for i in titles:
    print(i.get_text().split("[")[0].split("-")[1].strip())

이와 같이 strip() 함수를 기본적으로 사용하면 앞뒤의 모든 공백이 잘 제거될 것입니다. 코드 작성시 이 점 유념해 주시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

65강 소리

0

24

1

섹션 5 CSS selector사용해서 클로링하기2의 커리큘럼 일정 부재?

0

25

2

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

0

40

1

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

0

47

1

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

0

53

1

크롤링 관련 질문

0

70

1

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

0

82

1

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

0

89

1

업데이트 강의

0

108

2

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

0

130

2

연습용 예제 파일

0

79

1

lxml 관련 오류

0

112

1

SAVE Request 창 띄우는 법

0

97

1

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

0

85

1

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

0

104

1

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

0

95

1

문제 파일

0

84

1

pdf 파일 내 코드 복붙시 공백

0

300

1

데이터 저장 강좌 문의 건

0

101

1

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

0

248

1

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

0

146

1

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

0

193

1

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

0

147

2

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

0

1566

2