파이썬

[파이썬] 텍스트 공백지우기, 범위 출력

개미는내일도뚠뚠 2022. 1. 25. 15:18

지니차트에서 랭킹, 음악 타이틀, 가수명 을 크롤링해서 출력하려는 예제


#body-content > div.newest-list ... > tr 까지가 공통이구 이후가 분기점이되어서 나뉘게 됨. 

긁어온 데이터는 'allMusic'에 담고 for문을 돌리려고함. 하지만 여기서 문제가 발생.

랭크 숫자만 나오는게 아니라 랭크가 몇단계 상승,하락했다는 문구도 같이 나오게됨. 여기서 이용할 수 있는 것이 [num:num] 이다. 범위를 정해서 글자를 긁어올 수 있는 기능이다. 첫번째 num은 시작index이고 두번째 num은 끝나는 index이다. 랭크가 99위까지 있어서 나는 두글자만 가져오면 되어서 [0:2]로 하였다. 결과는

랭크만 나오는 것은 성공하였으나 1자릿수는 뭔가 공백이 있는지 간격이 넓다. 여기서 공백을 없애줄 수 있는게 

strip() 를 이용하면 특정 문자 또는 공백을 제거할 수 있다.

 

strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거함. 아무것도안쓰면 양쪽으로 공백제거

lstrip([chars]) : 인자로 전달된 문자를 String 왼쪽에서 제거.

rstrip([chars]) : 인자로 전달된 문자를 String 오른쪽에서 제거.


 

출처 : https://codechacha.com/ko/python-string-strip/

 

Python - String strip(), rstrip(), lstrip() 사용 방법 및 예제

Python에서 strip() 함수를 이용하면 문자열의 쓸모 없는 부분을 자를 수 있습니다. Python은 lstrip(), rstrip(), strip()을 제공합니다. Java 등의 다른 언어들도 strip()을 제공하며, 기능은 모두 비슷합니다.

codechacha.com


아무튼 실행시켜보니 공백이 사라졌음.

다음은 음악 타이틀을 출력해보는데 타이틀도 깔끔하게 긁어오지 않았음.

타이틀도 공백을 제거해줌.

잘 나오는듯했는데 문제가 발생함. [Peaches]라는 곳은 19금 마크가 붙어서 19금 텍스트까지 가져오고 공백도 생겼음. 이 문제는 나만생긴건지 강의에서는 따로 이부분 언급은 없어서 일단 스스로 해결해보았음.

 

일단 lstrip() 을 이용해서 '19금'이라는 단어는 제거하도록 함.

19금 단어는 사라졌지만 공백은 여전히 존재함. 그래서 추가로 .strip() 을 이용해서 공백을 제거함.

일단 저렇게 하니 원하는대로 나오기는 했는데 저게 과연 최선이었는지 찝찝한 마음은 어쩔 수 없음. 공부하다가 더 좋은 방법이 생각나면 수정을 해봐야겠다.