μΆμΆν κΈ°μ¬ λ°μ΄ν°λ₯Ό CSV νμΌλ‘ μ μ₯νκΈ°
μ΄λ² μμ
μμλ μΆμΆν BBC λ΄μ€ κΈ°μ¬ μ λͺ©μ CSV νμΌ
λ‘ μ μ₯νλ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
CSV(Comma Separated Values)λ μΌνλ‘ κ΅¬λΆλ λ°μ΄ν°λ₯Ό μλ―Έν©λλ€.
CSV νμΌμ μμ , ꡬκΈμνΈμ κ°μ μ€νλ λμνΈ νλ‘κ·Έλ¨μμ μ½κ² μ΄λν μ μμΌλ©°, λ°μ΄ν°λ₯Ό μ μ₯νκ³ λΆλ¬μ¬ λ μμ£Ό νμ©λ©λλ€.
BBC μΉμ¬μ΄νΈμμ κΈ°μ¬ μ λͺ©μ μΆμΆνλ μ½λ
νμ΄μ¬μμ κΈ°λ³Έμ μΌλ‘ μ 곡νλ csv
λͺ¨λμ μ¬μ©νλ©΄ λ°μ΄ν°λ₯Ό κ°νΈνκ² CSV νμμΌλ‘ μ²λ¦¬ λ° μ μ₯ν μ μμ΅λλ€.
import csv from io import StringIO from bs4 import BeautifulSoup import requests # BBC λ΄μ€ ννμ΄μ§μ μμ² λ³΄λ΄κΈ° url = "https://www.bbc.com/news" response = requests.get(url) # HTML λ°μ΄ν° νμ± soup = BeautifulSoup(response.text, "html.parser") # h2 HTML νκ·Έλ‘ κΈ°μ¬ μ λͺ© 10κ° μΆμΆ titles = soup.find_all('h2', limit=10) # CSV νμΌλ‘ μ μ₯ν λ°μ΄ν° κ΅¬μ± data = [] for title in titles: # κΈ°μ¬ μ λͺ©λ§ μΆμΆ data.append([title.text])
μ μ½λλ h2
HTML νκ·Έλ₯Ό κ°μ§ BBC λ΄μ€ κΈ°μ¬ μ λͺ©μ μΆμΆνκ³ , CSV ννλ‘ μΆλ ₯νλ μ½λμ
λλ€.
h2(Heading2) νκ·Έλ μΉ νμ΄μ§μμ μ λͺ©μ λνλ΄λ νκ·Έλ‘, μΈν°λ· λ΄μ€ κΈ°μ¬ μ λͺ©μ μ£Όλ‘ h1(λμ λͺ©), h2(μ€μ λͺ©), h3(μμ λͺ©) νκ·Έλ‘ μμ±λ©λλ€.
soup.find_all('h2', limit=10)
μ½λλ HTML λ°μ΄ν°μμ h2 νκ·Έλ‘ μμ±λ κΈ°μ¬ μ λͺ©μ μ΅λ 10κ°κΉμ§ μΆμΆν©λλ€.
CSV νμΌλ‘ μ μ₯νκΈ°
# StringIO κ°μ²΄(λ©λͺ¨λ¦¬μ νμΌμ²λΌ λ°μ΄ν°λ₯Ό μμ μ μ₯) μμ± output = StringIO() # CSV νμΌλ‘ StringIO κ°μ²΄ μ μ₯ csv_writer = csv.writer(output) # CSVμ ν€λ μΆκ° csv_writer.writerow(['λ²νΈ', 'κΈ°μ¬ μ λͺ©']) # CSVμ λ²νΈμ κΈ°μ¬ μ λͺ© μΆκ° for idx, title in enumerate(titles, 1): csv_writer.writerow([idx, title.text.strip()]) # CSV νμμ κ²°κ³Ό μΆλ ₯ print(output.getvalue()) # StringIO κ°μ²΄ λ«κΈ° output.close()
StringIO
κ°μ²΄λ λ©λͺ¨λ¦¬μ λ°μ΄ν°λ₯Ό μμ μ μ₯ν μ μλ κ°μ²΄μ
λλ€.
csv.writer
λ‘ CSV νμΌμ μμ±νκ³ , csv_writer.writerow()
λ‘ ν€λμ λ°μ΄ν°λ₯Ό μΆκ°ν©λλ€.
λ§μ§λ§μΌλ‘ output.getvalue()
λ‘ CSV νμμ κ²°κ³Όλ₯Ό μΆλ ₯ν©λλ€.
μ΄μ μ μ½λλ₯Ό μ€ννλ©΄, μΆμΆν BBC λ΄μ€ κΈ°μ¬ μ λͺ©μ΄ CSV νμμΌλ‘ μΆλ ₯λ©λλ€.
μ°Έκ³ λ‘ CSV νμμΌλ‘ νμλ λ°μ΄ν°λ₯Ό μΆλ ₯νλ κ²μ΄ μλ μ μ₯νλ €λ©΄, μλ μ½λλ₯Ό μΆκ°νλ©΄ λ©λλ€.
# CSV νμΌλ‘ StringIO κ°μ²΄ μ μ₯ with open('bbc_news.csv', 'w', newline='') as f: f.write(output.getvalue())
μ μ½λλ μ»΄ν¨ν°μ νμ΄μ¬ μ€ν νμΌμ΄ μ€νλλ μμΉμ bbc_news.csv
νμΌμ μμ±νκ³ , λ°μ΄ν°λ₯Ό μ μ₯ν©λλ€.
μ€μ΅ νκ²½μμλ 보μ λ¬Έμ λ‘ μΈν΄ νμΌ μ μ₯μ΄ μ νλ©λλ€.
CSV νμΌλ‘ λ€μ΄λ‘λνκΈ° μν΄μλ μ€ν
λ²νΌ μμ μ€μ΅ νκ²½μ λ€μ΄λ‘λ
λ²νΌμ μ΄μ©ν΄μ£ΌμΈμ :)
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result