Language/Python

웹 크롤링 - 네이버 증권정보 빼오기

beomzh 2024. 4. 9. 10:26
728x90
반응형

웹 크롤링 = URL을 반복 탐색해 링크 가져오기
웹 스크래핑 특정 웹페이지에서 데이터 추출 

1. 필수 - 패키지 설치
pip install beautifulsoup4 lxml requests
pip install requests
pip install pandas
pip install pyOpenSSL

2. 국제 규정을 어기지 않기위해 robots.txt 이용하기
예를들어 네이버 http://www.naver.com/robots.txt

3. 기본 코드의 프레임 = 데이터 추출/ 데이터 담기
requests 와 beautifulsoup4 라이브러리 모듈은 html 문서를 가져와
lxml로 파싱해 soup 객체롤 만듬

4. 객체를 가져와서 만들고 싶었는데... 안만들어지네?
- 요소를 정확하게 가져오지 못하는듯 싶다
- JavaScript 공부를 해야하나...싶당

import requests
from bs4 import BeautifulSoup
import pandas as pd

# verify 옵션을 사용해야 SSLError 안나옴
resp=requests.get('https://finance.naver.com/',verify=False)
html=resp.text
soup=BeautifulSoup(html,'html.parser')

# select시 class 명으로 찾고 뛰어쓰기로 해당 태그 검색
value=soup.select('.tbl_home tbody th a')
# <a href="/item/main.naver?code=252670" onclick="clickcr(this, 'spe.slist', '252670', '1', event);">KODEX 200선물인버스2X</a>
print(value)

title = [] 
url = []
for n in value:
    # 반복으로 담을껀데 text area는 text로 나머지 옵션은 옵션명으로 추출
    title.append(n.text)
    url.append(n['href'])

df=pd.DataFrame()
df['제목'] = title
df['URL'] = url
print(df)

# csv 파일을 추출하고 한글 깨짐 방지시 utf-8이 아닌 utf-8-sig 입력 
# df.to_csv('nfinance.csv',index=False,encoding="utf-8-sig")
728x90
반응형

'Language > Python' 카테고리의 다른 글

계산기 만들기  (0) 2024.04.09
서울시 미세먼지 데이터 가져오기  (0) 2024.04.09
로또 번호 추첨기 [Python]  (0) 2023.09.15
숫자야구 [Python]  (0) 2023.09.15
귀도 반 로썸 아저씨가 만든 언어  (0) 2023.09.05