본문 바로가기

Python

데이터 크롤링(crawling) 후 엑셀(.xlsx)파일로 저장

모듈 설정
import pandas as pd
import requests
from bs4 import BeautifulSoup

 

 

메인 코드
header = {'User-agent': 'Mozila/5.0'}
response = requests.get("https://news.naver.com")   #추출하려는 사이트 주소
html = response.text    #html 형식으로 크롤링
soup = BeautifulSoup(html, 'html.parser')

item1 = soup.select('.channel')     #source
item2 = soup.select('.datetime')    #time
item3 = soup.select('.cjs_t')       #title
item4 = soup.select('.cjs_d')       #data
item5 = soup.select('.cjs_news_a')  #href
for i in range(0, len(item1)):      #데이터 낱개로 정리
    title_len_diff = len(item1[i].text) - len(item2[i].text)
    item1[i] = item1[i].text[:title_len_diff]
    item2[i] = item2[i].text
    item3[i] = item3[i].text
    item4[i] = item4[i].text
    item5[i] = item5[i]['href']
  • BeautifulSoup 이용한 크롤링(Crawling)
DataFrame이용하여 파일저장
df = pd.DataFrame({'source': item1,
                   'datetime': item2,
                   'title': item3,
                   'data': item4,
                   'href': item5})
print(df)
df.to_excel('data.xlsx')            #data.xlsx파일로 저장
  • DataFrame이용하여 2차원 배열로 제작

필요한 부분을 크롤링하여 xlsx로 저장된 파일