python : strip() , text[0:2]
2021. 12. 31. 02:20ㆍ카테고리 없음
반응형
숙제가 너무 어렵다...
완벽하게 하고파 몇시간을 찾고, 검색하고... 그런데 저 text[0:2]가 뭐길래 저거하나 했다고...ㅜㅜ
하~ 빨리 잘하고싶다!
빨리 능숙해지고싶다!!!
오늘 배운 팁:
1. 한 줄 하고는 print로 일일이 해보면서 진행하자!
그게 지름길이다!
2. 파이선에서 코드를 치는데 틀려서 고쳐쓰니 뒤에께 다 잘리면서 써진다...
insert를 누르면 된다.
<숙제>
📃 지니뮤직의 1~50위 곡을 스크래핑 해보세요.
- [코드스니펫] 지니뮤직 사이트
- [<https://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1>](<https://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1>)
- 순위 / 곡 제목 / 가수를 스크래핑 하면 됩니다.
- 힌트: 순위와 곡제목이 깔끔하게 나오지 않을 거예요. 옆에 여백이 있다던가, 다른 글씨도 나온다던가.. 파이썬 내장 함수인 strip()을 잘 연구해보세요!
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('<https://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1>',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for tr in trs:
title = tr.select_one('td.info > a.title.ellipsis').text.strip()
rank = tr.select_one('td.number').text[0:2].strip()
artist = tr.select_one('td.info > a.artist.ellipsis').text
print(rank, title, artist)
Q. 3주차 숙제 정답에서 text[0:2] 가 이해되지 않습니다. 무슨 뜻인가요?
A.
- 먼저 숙제 해설영상을 참고해주세요~ (나의 강의실>웹개발 종합반 화면에서 수업 들으러가기 클릭>진도표 입장>3주차 숙제 제출 클릭>하단에 강의 노트와 숙제해설 영상)
- 이것은 파이썬의 슬라이싱(slicing) 이라는 기능을 사용한 것입니다. text 만 출력하게 되면 공백, 줄바꿈 문자등이 포함되므로 우리가 필요로 하는 숫자만 저장하기 위해서 깔끔하게 데이터를 정제했다고 생각하시면 됩니다~! text[0:2] 는 text 라는 변수에 담긴 데이터 중에 맨 앞 1 글자만 잘라냈다(slice, 슬라이스) 했다는 뜻입니다. https://wikidocs.net/2838
반응형