가. 엑셀 처리
1) 스크래핑 후 엑셀 저장
•
이하 예제는 다음 링크 [참조]
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
url = 'https://finance.naver.com/'
response = requests.get(url)
response.raise_for_status()
html = response.text
soup = BeautifulSoup(html, 'html.parser')
tbody = soup.select_one('#container > div.aside > div.group_aside > div.aside_area.aside_popular > table > tbody')
trs = tbody.select('tr')
datas = []
for tr in trs:
name = tr.select_one('th > a').get_text()
current_price = tr.select_one('td').get_text()
change_direction = tr['class'][0]
change_price = tr.select_one('td > span').get_text()
datas.append([name, current_price, change_direction, change_price])
write_wb = Workbook()
write_ws = write_wb.create_sheet('결과')
for data in datas:
write_ws.append(data)
write_wb.save(r'파일경로/파일이름.xlsx')
Python
복사
나. 실시간 스크래핑
1) 기본 예제
•
이하 예제는 다음 링크 [참조]
import requests
from bs4 import BeautifulSoup
codes = ['096530', '010130'] # 종목코드 리스트
prices = [] # 가격정보가 담길 리스트
for code in codes:
url = 'https://finance.naver.com/item/main.nhn?code=' + code
response = requests.get(url)
response.raise_for_status()
html = response.text
soup = BeautifulSoup(html, 'html.parser')
today = soup.select_one('#chart_area > div.rate_info > div')
price = today.select_one('.blind')
prices.append(price.get_text())
print(prices)
Python
복사
다. robots.txt
1) 기본 활용
•
크롤러에게 접근 허용여부 전달
•
robots.txt 예시
# 모든 크롤러에게 접체 웹사이트 크롤링 금지
User-agent: *
Disallow: /
# 모든 크롤러에게 일부 경로만 크롤링 금지
User-agent: *
Disallow: /calendar/
Disallow: /junk/
Disallow: /books/fiction/contemporary/
Allow: /
Python
복사