여러개의 빈 리스트 선언 후 조건에 따라 빈리스트에 적절히 값을 집어넣고 싶습니다
조회수 1030회
JNA = []
KAL = []
AAR = []
JJA = []
ABL = []
TWB = []
ASV = []
airlines = ['lj-jna', 'ke-kal', 'oz-aar', '7c-jja', 'bx-abl', 'tw-twb', 'rs-asv']
for i in airlines:
driver.get('https://www.flightradar24.com/data/airlines/%s' % i)
driver.find_element_by_css_selector('nav > a:nth-child(3)').click()
driver.find_element_by_css_selector('#list-aircraft > dt:nth-child(2)').click()
try:
driver.find_element_by_css_selector('#list-aircraft > dt:nth-child(4)').click()
except:
pass
fleet = driver.find_elements_by_css_selector('td:nth-child(1) > a')
airline_code = driver.find_element_by_css_selector('div.row.m-t-l.m-l-l > h2').text[3:]
for j in fleet:
airline_code.append(j.text)
https://www.flightradar24.com/ 란 사이트에서 스크래핑을 하고 싶습니다
위의 빈 리스트(JNA, KAL, AAR 등)에 fleet 정보를 집어넣고 싶습니다.
airline_code 실행시 'JNA', 'KAL, 'AAR' ... 등이 나옵니다.
이거에 맞춰서 빈 리스트에 집어넣고 싶은데 airline_code.append(j.text)을 하면 'str' object has no attribute 'append' 오류가 뜹니다. 리스트 JNA와 airline_code의 'JNA'는 다른거 같은데 어떻게 해야 반복문을 통해 노가다 없이 빈리스트에 넣을 수 있을까요?
1 답변
-
원하시는 것은
dict
형일 것입니다. https://wikidocs.net/16043아래 코드가 돌아가는지 시험해봐 주세요.
scrapped = {} airlines = ['lj-jna', 'ke-kal', 'oz-aar', '7c-jja', 'bx-abl', 'tw-twb', 'rs-asv'] for i in airlines: driver.get('https://www.flightradar24.com/data/airlines/%s' % i) driver.find_element_by_css_selector('nav > a:nth-child(3)').click() driver.find_element_by_css_selector('#list-aircraft > dt:nth-child(2)').click() try: driver.find_element_by_css_selector('#list-aircraft > dt:nth-child(4)').click() except: pass fleet = driver.find_elements_by_css_selector('td:nth-child(1) > a') airline_code = driver.find_element_by_css_selector('div.row.m-t-l.m-l-l > h2').text[3:] for j in fleet: # scrapped 딕셔너리에 없는 airline_code 가 튀어나왔다면 if airline_code not in scrapped : # 빈 목록을 값으로 주어서 새 키를 정의해 준다 scrapped[airline_code] = [] # 이제 그 airline_code 키가 갖는 배열에 원하는 값을 append 가능 scrapped[airline_code].append(j.text) print(scrapped)
댓글 입력