μν€νΌλμμμ μ‘°μ¬ν λ°μ΄ν°λ₯Ό μ΄λ©μΌλ‘ 보λ΄κΈ°
μ΄λ² κ³Όμ λ μ£Όμ μμ¬μ μ¬κ±΄
μ λ μ§ μ 보λ₯Ό μν€νΌλμ
μμ ν¬λ‘€λ§ν ν, μμ¬μ μ¬κ±΄κ³Ό λ μ§ μ 보λ₯Ό λ΄μ CSV νμΌ
μ μ΄λ©μΌλ‘ 첨λΆν΄ μ μ‘νλ κ²μ
λλ€.
μ΄μ κ°μ νλ‘κ·Έλ¨μ΄ μλνλ μ리λ₯Ό μ΄ν΄νλ©΄ λκ·λͺ¨μ λ°μ΄ν°λ₯Ό ν¬λ‘€λ§νκ³ , μ΄λ₯Ό λ€μν ννλ‘ κ°κ³΅νμ¬ μ΄λ©μΌ μ λ¬νλλ‘ νμ© μ¬λ‘λ₯Ό λν μ μμ΅λλ€.
ν¬λ‘€λ§ κ²°κ³Ό CSVλ‘ λ³ννκΈ°
λ¨Όμ ν¬λ‘€λ§ν κ²°κ³Όλ₯Ό CSV
λ‘ λ³ννλ κ³Όμ μ μ΄ν΄λ³΄κ² μ΅λλ€.
1. νμν λΌμ΄λΈλ¬λ¦¬ λΆλ¬μ€κΈ°
import pandas as pd import requests from bs4 import BeautifulSoup
-
pandas : λ°μ΄ν°λ₯Ό μ½κ³ μ²λ¦¬νλ λ° μ¬μ©νλ λΌμ΄λΈλ¬λ¦¬μ λλ€. μ£Όλ‘
μμ
λ°CSV
νμΌμ λ€λ£Ήλλ€. -
requests : μΉ νμ΄μ§μ
μμ²
μ 보λ΄κ³μλ΅
μ λ°κΈ° μν΄ μ¬μ©νλ λΌμ΄λΈλ¬λ¦¬μ λλ€. -
BeautifulSoup : μΉ νμ΄μ§μ
HTML μ½λ
λ₯Ό λΆμνκ³ μνλ μ 보λ₯Ό μΆμΆνλ λΌμ΄λΈλ¬λ¦¬μ λλ€.
2. μμ νμΌ μ½κΈ°
df = pd.read_excel('input_file.xlsx')
-
file_url : μμ νμΌ κ²½λ‘μ λλ€. μ΄ νμΌμλ μμ¬μ μ¬κ±΄μ λν
λ²νΈ
μμ΄λ¦
μ΄ μ μ₯λμ΄ μμ΅λλ€. -
pd.read_excel : pandasμ
read_excel
ν¨μλ₯Ό μ¬μ©ν΄ μμ νμΌμ λ°μ΄ν°νλ μ ννλ‘ μ½μ΄μ΅λλ€.
3. μν€νΌλμμμ λ μ§ μ 보 μΆμΆνλ ν¨μ λ§λ€κΈ°
def extract_date(event_name): # μν€νΌλμ νμ΄μ§ URL url = base_url + event_name # μΉ νμ΄μ§ μμ² response = requests.get(url) # μμ²μ΄ μ±κ³΅ν κ²½μ° if response.status_code == 200: # HTML νμ± soup = BeautifulSoup(response.content, 'html.parser') # λ μ§ μ λ³΄κ° μλ κ²½μ° μ£Όλ‘ infoboxμ μ‘΄μ¬νλ€κ³ κ°μ infobox = soup.find('table', {'class': 'infobox'}) # infoboxμμ 'λ μ§' νλͺ© μ°ΎκΈ° if infobox: # 'λ μ§' νλͺ©μ΄ μλμ§ νμΈ date_tag = infobox.find('th', string='λ μ§') # 'λ μ§' νλͺ©μ΄ μλ κ²½μ° if date_tag: # 'λ μ§' νλͺ©μ λ€μ νμ νκ·Έμμ λ μ§ μ 보 μΆμΆ date_value = date_tag.find_next_sibling('td') # λ μ§ μ λ³΄κ° μλ κ²½μ° if date_value: # λ μ§ μ 보 λ°ν return date_value.text.strip() # λ μ§ μ λ³΄κ° μλ κ²½μ° return 'λ μ§ μ 보 μμ' # μΉνμ΄μ§ μμ²μ΄ μ€ν¨ν κ²½μ° else: return 'νμ΄μ§ μ€λ₯'
-
requests.get : μ£Όμ΄μ§ URLλ‘ μΉ μμ²μ 보λ΄κ³ μλ΅μ λ°μ΅λλ€.
-
BeautifulSoup : μλ΅ λ°μ HTML μ½λλ₯Ό λΆμν©λλ€.
-
infobox : μ¬κ±΄μ μ λ³΄κ° λ΄κΈ΄ ν(table)λ₯Ό μ°Ύμ κ·Έ μμμ 'λ μ§'λΌλ νλͺ©μ μ°Ύμ κ°μ λ°νν©λλ€.
-
return : λ μ§λ₯Ό μ°Ύμ§ λͺ»νλ©΄ 'λ μ§ μ 보 μμ', νμ΄μ§κ° λ‘λλμ§ μμΌλ©΄ 'νμ΄μ§ μ€λ₯'λΌλ λ©μμ§λ₯Ό λ°νν©λλ€.
4. λ°μ΄ν°νλ μμ ν¨μ μ μ©νκΈ°
df['λ μ§'] = df['μμ¬μ μ¬κ±΄'].apply(extract_date)
-
df['μμ¬μ μ¬κ±΄']
: μμ νμΌμμ μ½μ΄μ¨'μμ¬μ μ¬κ±΄'
μ΄μ λλ€. κ° μ¬κ±΄μ μ΄λ¦μ μλ―Έν©λλ€. -
apply(extract_date)
: κ° μ¬κ±΄ μ΄λ¦μ λν΄extract_date
ν¨μλ₯Ό μ μ©νμ¬ λ μ§λ₯Ό μΆμΆνκ³ , κ·Έ κ²°κ³Όλ₯Ό μλ‘μ΄ 'λ μ§' μ΄μ μ μ₯ν©λλ€.
5. κ²°κ³Ό μΆλ ₯νκΈ°
print(df[['μμ¬μ μ¬κ±΄', 'λ μ§']].to_csv(index=False))
-
df[['μμ¬μ μ¬κ±΄', 'λ μ§']]
: 'μμ¬μ μ¬κ±΄'κ³Ό μΆμΆλ 'λ μ§' μ΄λ§ μ νν©λλ€. -
to_csv(index=False)
: μ νλ λ°μ΄ν°λ₯ΌCSV νμ
μΌλ‘ λ³ννμ¬ μΆλ ₯ν©λλ€.index=False
λ μΈλ±μ€(λ°μ΄ν°νλ μμμ κ° νμ μμΉλ₯Ό λνλ΄λ λ²νΈ)λ₯Ό μ μΈνκ³ μΆλ ₯νλΌλ μλ―Έμ λλ€.
λ€μ μμ μμλ ν¬λ‘€λ§ν CSV λ°μ΄ν°λ₯Ό μ΄λ©μΌλ‘ μ μ‘νλ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result
Output
The document is empty.
Try running the code.