웹페이지 크롤링 (requests.get,beautifulsoup사용) 예제[exam4_crawl]
페이지 정보
작성자 관리자 댓글 0건 조회 369회 작성일 21-07-27 21:01본문
네이버 주식시세페이지에서 삼성전자의 일자별 종가를 가져오는 예제
실행화면
코드설명
import requests
from bs4 import BeautifulSoup
#네이버 주식정보사이트에서 삼성전자종목의 일자별 종가를 크롤링하는 예제
#웹크롤링 샘플링크
https://finance.naver.com/item/sise_day.nhn?code=005930&page=1
#날짜,종가,전일비,시가,고가,저가,거래량
중에서 날짜와 종가만 가져옴
#배열의 값을 담을수있는 리스트 변수를 선언함
ls_contents2 =
[]
ls_code2 = '005930'
print(ls_code2)
li_page = 5
for i in range(li_page):
#보통 for문에서는 i,j,k 이런변수를
사용함, i는 0-4
ls_address = "https://finance.naver.com/item/sise_day.nhn?code="+str(ls_code2)+"&page="+str(i+1)
#print(ls_address)
ls_req = requests.get(ls_address, headers={'User-agent': 'Mozilla/5.0'})
#header부분을 적지 않으면 페이지를 못가져옴
ls_html = ls_req.content
#print(ls_html)
ls_soup = BeautifulSoup(ls_html, "html.parser")
# 이 부분에서실제 html소스코드
형태의 값을 가져온다.
tr = ls_soup.select('table > tr') #table태그의 자식태그 tr을 가져옴
#print(ls_soup)
#print(tr) tr에는 웹페이지 한페이지안에 있는 tr 태크들이
들어있음
print(len(tr))
#len(tr)은 총17개 정도가
나오지만 타이틀행인 1행제외 ,2-11행 사용, 그뒤에
행은 제외
for j in range(1, len(tr)-1):
#print(tr[j].select('td')[0].text.strip())
if tr[j].select('td')[0].text.strip(): #td안에서
텍스트만 가져옴, tr태그중에는 td에 값이 없는 것들은
츨력을 안함
ls_contents2.append(tr[j].select('td')[0].text.strip()) #날짜
ls_contents2.append(tr[j].select('td')[1].text.strip()) #종가
print(ls_contents2) #일자와 종가를 가져옴
첨부파일
- exam4_crawl.py (1.8K) 7회 다운로드 | DATE : 2021-07-27 21:01:19
- 이전글웹페이지 크롤링데이터를 테이블위젯에 뿌려주는 예제[exam5_crawl] 21.08.21
- 다음글pyqt5를 이용한 메인폼,라디오버튼,달력 사용예제[exam3_pyqt5] 21.07.25
댓글목록
등록된 댓글이 없습니다.