def get_tag_list(html):
soup = BeautifulSoup(html, 'html.parser')
tag_list_title = []
tag_list_singer = []
for tr_tag in soup.tbody.find_all('tr'):
tag = tr_tag.find(class_='wrap_song_info')
if tag:
tag_sub_list_title = tag.find_all(href=lambda title: (title and 'playSong' in title))
tag_list_title.extend(tag_sub_list_title)
tag_sub_list_singer = tag.find(class_='checkEllipsis').find_all(href=lambda singer: (singer and 'goArtistDetail' in singer))
tag_list_singer.extend(tag_sub_list_singer)
return tag_list_title, tag_list_singer
#############
URL = "http://www.melon.com/chart/day/index.htm"
html = get_html(URL)
soup = BeautifulSoup(html, 'html.parser')
now = time.localtime()
s = "ddd" % (now.tm_year, now.tm_mon, now.tm_mday)
my_file_path = "./melonChart_" + s + ".xlsx"
if Path(my_file_path).is_file(): #파일 존재
wb = load_workbook(my_file_path)
#print(wb.index(wb["melonChart_day"]))
ws = wb.active
tag_list = get_tag_list(html)
print(type(tag_list))
for idx, tag in enumerate(tag_list[0], 1):
print(idx, tag.text)
ws.cell(row=idx, column=1).value = idx
ws.cell(row=idx, column=2).value = tag.text
for idx, tag in enumerate(tag_list[1], 1):
print(idx, tag.text)
ws.cell(row=idx, column=3).value = tag.text
#######
[결과값]
<class 'tuple'>
1 지나오다
2 What is Love?
3 붕붕 (Feat. Sik-K) (Prod. GroovyRoom)
4 You
5 바코드 (Prod. GroovyRoom)
6 꽃 길
7 별이 빛나는 밤
8 사랑을 했다 (LOVE SCENARIO)
9 EVERYDAY
10 My Way
11 뿜뿜
12 전혀 (Feat. 우원재) (Prod. GroovyRoom)
13 그날처럼
14 북 (Prod. SLO)
15 이로한 (Feat. ELO, Jessi) (Prod. Padi)
16 그때 헤어지면 돼
17 HandClap
18 선물
19 Roller Coaster
20 Jenga (Feat. Gaeko)
21 어린 왕자 (Prod. Godic)
22 소나기 (Feat. 10cm)
23 Havana (Feat. Young Thug)
24 BOOMERANG (부메랑)
25 비행운
26 Bad Boy
27 花요일 (Blooming Day)
28 탓 (Prod. BOYCOLD)
29 이 별
30 가을 안부
31 넋두리
32 밤이 되니까
33 instagram
34 눈사람
35 약속해요 (I.P.U.)
36 Like It (Feat. 행주, 보이비)
37 Heart Shaker
38 Shape of You
39 내가 더 나빠
40 모든 날, 모든 순간 (Every day, Every Moment)
41 시차 (We Are) (Feat. 로꼬 & GRAY)
42 눈 떠보니 이별이더라
43 좋니
44 all of my life
45 밤편지
46 Beautiful
47 Adios (Prod. BOYCOLD)
48 #첫사랑
49 에너제틱 (Energetic)
50 LIKEY
51 DNA
52 EASY (Feat. 식케이)
53 주인공
54 그리워하다
55 봄날
56 비도 오고 그래서 (Feat. 신용재)
57 REALLY REALLY
58 결혼
59 미안해
60 빨간 맛 (Red Flavor)
61 썸 탈꺼야
62 짙어져
63 There`s Nothing Holdin` Me Back
64 노력
65 Thunder
66 기억의 빈자리
67 첫눈처럼 너에게 가겠다
68 바람이 불었으면 좋겠어
69 벚꽃 엔딩
70 마지막처럼
71 좋아
72 기적 같은 이야기
73 애쓰지 마요
74 바보야
75 봄 사랑 벚꽃 말고
76 Young Wave (Feat. 행주, 보이비)
77 Universe
78 Stand By Your Man (JTBC 드라마 밥 잘 사주는 예쁜 누나 삽입곡)
79 피카부 (Peek-A-Boo)
80 봄이 좋냐??
81 어떤가요 그댄
82 그대 떠난 뒤
83 알지도 못하면서
84 괜찮냐고
85 그때의 나, 그때의 우리
86 #결별
87 Playdate
88 AIR
89 GOLD
90 너의 이름을
91 내일해
92 내일 만나 (Sweet Dreams!)
93 Closer (Feat. Halsey)
94 Vroom Vroom
95 보여
96 나타나줘 (Feat. 박재범)
97 약속해요 (고백 Ver.)
98 Monday Blues
99 손만 잡고 자자 (TURN OFF THE LIGHT) (MINO SOLO)
100 Thursday
1 닐로 (Nilo)
2 TWICE (트와이스)
3 김하온 (HAON)
4 멜로망스
5 김하온 (HAON)
6 이병재 (VINXEN)
7 BIGBANG
8 마마무
9 iKON
10 WINNER
11 이수 (엠씨 더 맥스)
12 모모랜드 (MOMOLAND)
13 이병재 (VINXEN)
14 장덕철
15 이로한 (WEBSTER B)
16 오담률 (CHIN CHILLA)
17 이로한 (WEBSTER B)
18 로이킴
19 Fitz & The Tantrums
20 멜로망스
21 청하
22 헤이즈 (Heize)
23 김하온 (HAON)
24 박준호 (PULLIK)
25 용준형
26 Camila Cabello
27 Wanna One (워너원)
28 문문 (MoonMoon)
29 Red Velvet (레드벨벳)
30 EXO-CBX (첸백시)
31 이병재 (VINXEN)
32 길구봉구
33 먼데이 키즈
34 닐로 (Nilo)
35 펀치 (Punch)
36 DEAN
37 정승환
38 Wanna One (워너원)
39 이로한 (WEBSTER B)
40 윤진영 (Clloud)
41 TWICE (트와이스)
42 Ed Sheeran
43 헤이즈 (Heize)
44 폴킴
45 우원재
46 포맨
47 윤종신
48 박원
49 아이유
50 Wanna One (워너원)
51 김하온 (HAON)
52 볼빨간사춘기
53 Wanna One (워너원)
54 TWICE (트와이스)
55 방탄소년단
56 휘인 (마마무)
57 선미
58 비투비
59 방탄소년단
60 헤이즈 (Heize)
61 WINNER
62 문문 (MoonMoon)
63 양다일
64 Red Velvet (레드벨벳)
65 볼빨간사춘기
66 멜로망스
67 Shawn Mendes
68 박원
69 Imagine Dragons
70 나얼
71 에일리
72 길구봉구
73 버스커 버스커
74 BLACKPINK
75 민서
76 윤종신
77 Apink (에이핑크)
78 박보람
79 허각
80 HIGH4 (하이포)
81 아이유
82 오담률 (CHIN CHILLA)
83 EXO
84 Carla Bruni
85 Red Velvet (레드벨벳)
86 10cm
87 청하
88 조현아 (어반 자카파)
89 민서
90 헤이즈 (Heize)
91 어반자카파
92 길구봉구
93 박보람
94 EXO-CBX (첸백시)
95 WINNER
96 Wanna One (워너원)
97 Wanna One (워너원)
98 EXID
99 EXO-CBX (첸백시)
100 The Chainsmokers
101 EXO-CBX (첸백시)
102 Wanna One (워너원)
103 로꼬
104 Wanna One (워너원)
105 EXO-CBX (첸백시)
106 WINNER
107 EXO-CBX (첸백시)
대충 이런식인데 가수를 리스트로 뽑아낼라니깐 여러명이 부른것들은 컴마로 나눠놔서(ex ㄱㄱㄱ, ㄴㄴㄴ) 리스트로 받으면 1~100위가 아니라 그걸 초과해서 나오거든요 이거 어떻게해야될까요
컴마가 아니라 다른 걸 집어넣어서 끊으셈..가수명에 없을것 같은 문자루..
어쩌긴 뭘 어째 가수 여러명을 한줄에 써야지
뜬금없이 든 생각인데 만일 피치못해 ,로 구분을 해야한다면 문자에 (가 들어있으면 그 다음에 있는 0번째 , 는 무시하는 방향으로 if문을 체크하는건 어떨까 생각해보앗습니다
제가 제 코드를 잘못이해했네욤.. 태그자체가 컴마단위로 끊겨서 긁어들어오네염
ㄳㄳ
https://s.put.re/bAUcNmf.PNG
헐 감삼합니다.