왕초보 웹개발반 3주차 숙제 개발일지

hee·2021년 7월 17일
0
post-thumbnail

크롤링 재밌다면서요 또 속았어 또 속았어.... 물론 스크립트지옥보단 선녀지만 재미는 어디에서 찾죠?

이번 숙제 목표: 지니뮤직의 1~50위 곡을 스크래핑 하기

이렇게 뜨면 성공!인데...벌써 눈앞이 캄캄하다... 저 크롤링 감성이해 아직 못했는데...


숙제시작

trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')

일단 순위권 데이터를 스크랩해야하니까, 해당테이블만 가져와본다.

얼추 잘나오고 있는듯?



우선 노래제목 먼저 가져오기로했다. 왜냐하면 hello.py 파일에 그렇게 되어있었기때문이다.

for tr in trs:
    title = tr.select_one('td.info > a.title.ellipsis').text


엄청난 공백과 함께 잘나온다...
여기에서 숙제에서 요구한 공백없애기를 시도해본다!

for tr in trs:
    title = tr.select_one('td.info > a.title.ellipsis').text.strip()
    print(title)

가라 strip() 함수!!!!!!!!!!!!

굿.....마지막줄의 노래제목이 나의 가슴을 후두려팬다. 야너두? 야나두...



그다음은 랭크를 가져오기로 했다 근데 벌써 막혔다...
네이버영화는

<img src="https://ssl.pstatic.net/imgmovie/2007/img/common/bullet_r_r01.gif" alt="01" width="14" height="13">

이렇게 코딩이 되어있기 때문에

rank = tr.select_one('td:nth-child(1) > img')['alt']

이렇게 alt값만 쏙빼와서 랭크로 보여줄수가 있었는데

지니뮤직은...

<td class="number">
1
<span class="rank">
	<span class="rank"><span class="rank-up">1<span class="hide">상승</span></span></span>
</span>
</td>

의 형식이었기 때문이다 야!!! 너도 alt값 좀 정해라!! 그럼 td안에 있는 텍스트를 가져오면 될것 같긴한데....그래서 못참고 답안지를 봤다^^

띠용 이건뭐죠? 찾아보니 파이썬에서 문자열을 처리하는 방법이라고하신다
즉 해당 텍스트는 0이상2미만.. 이런..이런 방법이 놀랍다; 사고의 전환; 전 어떻게든 span지우려고 .decompose() 이런 함수 찾아보고 있었는데 말이죠....

아굿~ 잘나와요~



마지막은 가수만 하면된다.,...

singer = tr.select_one('td.info > a.artist.ellipsis').text


아유 잘나온다 예뻐죽겠어ㅜ 얘 랭크야 보고 배워라~~!!!


마지막으로 랭크, 노래제목, 가수를 print(rank,title,singer) 해주면~

굿 잘나온다

오늘도 얼레벌레 숙제성공...^^

profile
얼레벌레 개자이너 도전

0개의 댓글

관련 채용 정보