Selenium μΆμΆν λ°μ΄ν°λ₯Ό CSV νμΌλ‘ μ μ₯νκΈ°
μ§λ λ μμ
μμλ Selenium
μ νμ©ν΄ Yahoo Finance μΉ νμ΄μ§μ μ μνκ³ , μμ₯ λ°μ΄ν°μ μ£Όμ μ 보λ₯Ό μΆμΆνλ λ°©λ²μ λ°°μ μ΅λλ€.
μ΄λ² μμ
μμλ μΆμΆν λ°μ΄ν°λ₯Ό CSV νμΌ
λ‘ μΆλ ₯νκ³ μ μ₯νλ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
CSV νμΌ μ μ₯ μ½λ
μλμ μ½λλ μ»΄ν¨ν°μ νμΌ μμ€ν
μ μ¬μ©νμ§ μκ³ λ©λͺ¨λ¦¬μμ CSV λ°μ΄ν°λ₯Ό μ²λ¦¬νκΈ° μν΄ io.StringIO
μ csv
λͺ¨λμ μ¬μ©ν©λλ€.
# CSV λ°μ΄ν°λ₯Ό μμ±ν λ©λͺ¨λ¦¬ λ²νΌ μμ± output = io.StringIO() # csv.writer κ°μ²΄ μμ± (κΈ°λ³Έμ μΌλ‘ μΌνλ‘ κ΅¬λΆ) csv_writer = csv.writer(output) # μΈλ‘λ‘ λ°°μΉλ CSV λ°μ΄ν° μμ± csv_writer.writerow(["Metric", "Value"]) csv_writer.writerow(["Current Price", current_price]) csv_writer.writerow(["Previous Close", previous_close]) csv_writer.writerow(["Volume", volume]) # CSV λ°μ΄ν°λ₯Ό λ¬Έμμ΄λ‘ λ³ν csv_data = output.getvalue() # λ©λͺ¨λ¦¬ λ²νΌ λ«κΈ° output.close()
κ° μ€μ λ¨κ³λ³λ‘ μ΄ν΄λ³΄κ² μ΅λλ€.
1. output = io.StringIO()
-
io.StringIO()
λ νμ΄μ¬μio
λͺ¨λμμ μ 곡νλ ν΄λμ€μ λλ€. -
μ΄ ν΄λμ€λ λ©λͺ¨λ¦¬ λ΄μμ νμΌκ³Ό μ μ¬νκ² λμνλ κ°μ²΄λ₯Ό μμ±ν©λλ€.
-
λ³΄ν΅ CSV νμΌμ μμ±ν λλ νμΌ μμ€ν μ μ μ₯νμ§λ§, μ΄ κ²½μ° νμΌμ μ¬μ©νμ§ μκ³ λ©λͺ¨λ¦¬ λ΄μμ λ¬Έμμ΄μ λ€λ£¨κΈ° μν΄
StringIO()
λ₯Ό μ¬μ©ν©λλ€. -
μ¬κΈ°μ
output
μ μΌμ’ μ "λ©λͺ¨λ¦¬ λ²νΌ"λ‘, μ°λ¦¬κ° μμ±ν CSV λ°μ΄ν°λ₯Ό μΌμμ μΌλ‘ μ μ₯ν 곡κ°μ λλ€.
2. csv_writer = csv.writer(output)
-
csv.writer()
λ νμ΄μ¬csv
λͺ¨λμμ μ 곡νλ ν΄λμ€μ λλ€. -
csv.writer(output)
λoutput
μ΄λΌλStringIO
κ°μ²΄λ₯Ό CSV μμ± κ°μ²΄λ‘ λ³νν΄μ€λλ€. -
μ΄
csv_writer
κ°μ²΄λ CSV λ°μ΄ν°λ₯Ό μμ±νλ κΈ°λ₯μ μ 곡ν©λλ€. κΈ°λ³Έμ μΌλ‘ μΌν(,
)λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό ꡬλΆν©λλ€. -
μ΄μ
csv_writer
λ λ°μ΄ν°λ₯Ό CSV νμμΌλ‘ κΈ°λ‘ν μ μκ² λ©λλ€.
3. csv_writer.writerow(["Metric", "Value"])
-
csv_writer.writerow()
λ CSVμ ν νμ μμ±νλ ν¨μμ λλ€. -
μ΄ μ€μμλ 첫 λ²μ§Έ νμ μμ±νλλ°,
"Metric"
κ³Ό"Value"
λΌλ λ κ°μ νλͺ©μ μμ±ν©λλ€. -
["Metric", "Value"]
: μ΄ λ¦¬μ€νΈλ κ°κ°μ μ΄(column) μ΄λ¦μ λνλ λλ€."Metric"
: λ°μ΄ν° νλͺ©μ μ΄λ¦ (μ:Current Price
,Previous Close
,Volume
)"Value"
: ν΄λΉ νλͺ©μ κ° (μ:5619.58
,5626.02
,895731735
)
-
μ΄ νμ CSV νμΌμ 첫 λ²μ§Έ μ€, μ¦ ν€λ νμ΄ λ©λλ€.
4. csv_writer.writerow(["Current Price", current_price])
-
csv_writer.writerow()
λ₯Ό λ€μ νΈμΆνμ¬ λ λ²μ§Έ νμ μμ±ν©λλ€. -
μ΄ μ€μμλ
"Current Price"
λΌλ νλͺ©μ κ°μΌλ‘current_price
λ³μλ₯Ό κΈ°λ‘ν©λλ€. -
["Current Price", current_price]
: 리μ€νΈμ 첫 λ²μ§Έ νλͺ©μ"Current Price"
λΌλ μ΄ μ΄λ¦, λ λ²μ§Έ νλͺ©μcurrent_price
μ μ μ₯λ μ€μ κ°μ λλ€. -
μ΄ νμ νμ¬ μ£Όκ° λ°μ΄ν°λ₯Ό ν¬ν¨νλ CSVμ λ λ²μ§Έ μ€μ΄ λ©λλ€.
5. csv_writer.writerow(["Previous Close", previous_close])
-
μΈ λ²μ§Έ νμΌλ‘,
"Previous Close"
νλͺ©κ³Ό κ·Έ κ°μΈprevious_close
λ°μ΄ν°λ₯Ό CSVμ μμ±ν©λλ€. -
["Previous Close", previous_close]
:"Previous Close"
λ νλͺ© μ΄λ¦,previous_close
λ κ·Έ κ°μ λλ€.
6. csv_writer.writerow(["Volume", volume])
-
λ€ λ²μ§Έ νμΌλ‘,
"Volume"
νλͺ©κ³Ό κ·Έ κ°μΈvolume
λ°μ΄ν°λ₯Ό μμ±ν©λλ€. -
["Volume", volume]
:"Volume"
μ νλͺ© μ΄λ¦,volume
μ κ·Έ κ°μ λλ€.
7. csv_data = output.getvalue()
-
output.getvalue()
: λ©λͺ¨λ¦¬ λ²νΌμ μ μ₯λ λͺ¨λ λ°μ΄ν°λ₯Ό λ¬Έμμ΄λ‘ λ³ννλ λ©μλμ λλ€. -
StringIO
κ°μ²΄μΈoutput
μ μμ±λ CSV λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μμ λ¬Έμμ΄λ‘ κ°μ Έμ΅λλ€. -
μ΄λ
csv_data
λ λ¬Έμμ΄ νμμ CSV λ°μ΄ν°κ° μ μ₯λ λ³μκ° λ©λλ€.
8. output.close()
-
output.close()
: λ μ΄μ λ©λͺ¨λ¦¬ λ²νΌλ₯Ό μ¬μ©νμ§ μκΈ° λλ¬ΈμStringIO
κ°μ²΄λ₯Ό λ«μ΅λλ€. -
λ©λͺ¨λ¦¬ μμμ ν΄μ νλ κ³Όμ μ΄λ©°,
output
κ°μ²΄λ λ μ΄μ μ¬μ©ν μ μμ΅λλ€.
μ§κΈκΉμ§ μμ μμλ SeleniumμΌλ‘ μ£Όμ λ°μ΄ν° κ°κ³΅νκ³ , CSV νμΌλ‘ μ μ₯νλ λ°©λ²μ λ°°μ μ΅λλ€.
λ€μ μμ μμλ κ³ κ°λ³ μλ³ λ§€μΆ λ°μ΄ν°λ₯Ό νμ΄μ¬μΌλ‘ λΆμνκ³ , λ§μΆ€ν λ³΄κ³ μλ₯Ό μ΄λ©μΌλ‘ μλ λ°μ‘νλ λ°©λ²μ μ΄ν΄λ³΄κ² μ΅λλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result