ν¬λ‘€λ§μΌλ‘ μλ£ μ‘°μ¬ μλννκΈ°
κ³Όμ λλ μλ£ μ‘°μ¬λ₯Ό μν΄ μμ²κ°μ νμ¬ μ 보 μ°ΎμμΌ νλ μν©!
μΈν°λ· κ²μμΌλ‘ μμ²κ°μ νμ¬λ₯Ό μΌμΌν μ°Ύμ보λ κ²μ κ±°μ λΆκ°λ₯ν©λλ€.
μ΄λ κ² λ°λ³΅μ μΈ μλ£μ‘°μ¬ μμ μ μΉ ν¬λ‘€λ§μ μ¬μ©νλ©΄, ν루 μ’ μΌ κ±Έλ¦΄ μμ μ λͺ λΆ λ§μ λλΌ μ μμ΅λλ€.
μ§κΈλΆν° 5κ°μ νμ¬
μμ μ€λ¦½μ°λ
μ μ°½μ
μ
λ₯Ό μ°Ύλ μν©μ μ½λλ‘ κ΅¬νν΄ λ³΄κ² μ΅λλ€.
μ½λκ° λμνλ μ리λ₯Ό μ μ΄ν΄νλ©΄ μλ°±, μμ²κ°μ νμ¬ μ 보λ₯Ό ν λ²μ μμ§νλ νμ΄μ¬ νλ‘κ·Έλ¨μ μ½κ² ꡬνν μ μμ΅λλ€.
1. CSV λ°μ΄ν° μ€λΉ
csv_data
λΌλ λ¬Έμμ΄μ νμ¬ λͺ©λ‘μ μ μ₯ν©λλ€. μ΄ λ°μ΄ν°λ λμ€μ νλ‘κ·Έλ¨μμ μ¬μ©ν CSV νμΌμ²λΌ λμν©λλ€.
νμΌμ μ€μ λ‘ μ μ₯νμ§ μκ³ , io.StringIO
λ₯Ό μ¬μ©ν΄μ λ©λͺ¨λ¦¬ μμμλ§ μ΄ λ°μ΄ν°λ₯Ό μ²λ¦¬ν©λλ€.
1,Apple Inc. 2,Microsoft 3,NVIDIA 4,Berkshire Hathaway 5,Samsung
2. CSV λ°μ΄ν° μ½κΈ°
CSV λ°μ΄ν°λ₯Ό csv.DictReader
λ₯Ό μ¬μ©ν΄ λμ
λ리 ννλ‘ μ½μ΅λλ€.
CSVμ κ° νμ 'λ²νΈ', 'νμ¬λͺ 'μ΄λΌλ ν€λ₯Ό κ°μ§ λμ λλ¦¬λ‘ λ³νν©λλ€.
reader = csv.DictReader(csv_file)
3. νμ¬λͺ κ³Ό μν€νΌλμ URL 맀ν
νμ¬λͺ μ λ°λΌ μν€νΌλμ νμ΄μ§μ URLμ μλμΌλ‘ μμ±ν©λλ€
μλ₯Ό λ€μ΄ 'Apple Inc.'
λ https://en.wikipedia.org/wiki/Apple_Inc.
λ‘ λ³νλ©λλ€.
companies = {row['νμ¬λͺ ']: base_url + row['νμ¬λͺ '] for row in reader}
μ΄λ¬ν κ³Όμ μ ν΅ν΄ κ° νμ¬μ μν€νΌλμ νμ΄μ§κ° companies
λμ
λ리μ μ μ₯λ©λλ€.
{ 'Apple Inc.': 'https://en.wikipedia.org/wiki/Apple_Inc.', 'Microsoft': 'https://en.wikipedia.org/wiki/Microsoft', 'NVIDIA': 'https://en.wikipedia.org/wiki/NVIDIA', 'Berkshire Hathaway': 'https://en.wikipedia.org/wiki/Berkshire_Hathaway', 'Samsung': 'https://en.wikipedia.org/wiki/Samsung' }
4. μΉνμ΄μ§μμ λ°μ΄ν° κ°μ Έμ€κΈ°
κ° νμ¬μ μν€νΌλμ νμ΄μ§μ μ κ·Όν΄ μ°½μ μμ μ€λ¦½μ°λ μ 보λ₯Ό κ°μ Έμ΅λλ€.
μ΄λ₯Ό μν΄ requests.get()
ν¨μλ₯Ό μ¬μ©ν΄ URLμ μμ²μ 보λ΄κ³ , BeautifulSoup
μΌλ‘ HTML λ°μ΄ν°λ₯Ό νμ±(Parsing)ν©λλ€.
νμ±(Parsing)μ΄λ, HTML ꡬ쑰μμ νμν μ 보λ₯Ό μΆμΆνλ κ³Όμ μ μλ―Έν©λλ€.
response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser')
5. μ°½μ μμ μ€λ¦½μ°λ μ°ΎκΈ°
μν€νΌλμ νμ΄μ§μ μ 보 μμ(λ³΄ν΅ infoboxλΌ λΆλ¦¬λ ν μ΄λΈ)μ μ°½μ μμ μ€λ¦½μ°λ μ λ³΄κ° λ€μ΄ μμ΅λλ€.
μ΄ μ½λλ ν
μ΄λΈμμ 'Founder'
μ 'Founded'
λΌλ ν
μ€νΈλ₯Ό μ°Ύμ μ°½μ
μμ μ€λ¦½μ°λ μ 보λ₯Ό μΆμΆν©λλ€.
# νμ ν€λ μ 보 μΆμΆ header = row.find('th') # ν€λκ° μ‘΄μ¬νκ³ 'Founder'λΌλ ν μ€νΈκ° ν¬ν¨λ κ²½μ° if header and 'Founder' in header.text: founder = row.find('td').text.strip() # ν€λκ° μ‘΄μ¬νκ³ 'Founded'λΌλ ν μ€νΈκ° ν¬ν¨λ κ²½μ° if header and 'Founded' in header.text: founded = row.find('td').text.strip()
6. κ²°κ³Ό μΆλ ₯
μμ§ν μ°½μ
μμ μ€λ¦½μ°λ μ 보λ₯Ό company_info
리μ€νΈμ μ μ₯νκ³ , λ§μ§λ§μ μ΄ λ¦¬μ€νΈλ₯Ό μΆλ ₯ν©λλ€.
company_info.append({'νμ¬λͺ ': company, 'μ°½μ μ': founder, 'μ€λ¦½μ°λ': founded}) print(company_info)
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result