블로그 이미지
잡다한 취미 생활 및 일상에 대한 소소한 이야기를 적어나가는 블로그입니다.
붉은kkk

공지사항

최근에 올라온 글

최근에 달린 댓글

글 보관함

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

오늘은 뉴스기사를 크롤링하는 웹크롤러를 만들어 보겠습니다.


^^ 뉴스기사를 모아서 보면, 많은 양의 정보를 한번에 간편하게 볼 수 있을거 같네요.



아래 Source는 RunningWater님 블로그를 통해 배운 내용입니다.

(제 편의에 의해 Source의 일부만 변형되었습니다.

Source에 대한 상세 내용은 아래 RunningWater님 블로그를 참조해주세요.) 

출처 : https://justmakeyourself.tistory.com/entry/newsscraping-by-python-2




[Source code]

1: import requests
2: from bs4 import BeautifulSoup

3: 

4:  # 기사의 링크들이 담기는 리스트입니다.
5: rsss = []

6: # 파일은 아래 폴더에 저장됩니다.

7: fileOut = open('RssfileOut.txt','w', encoding='utf-8')

8: # rss와 기사에서 특정 부분을 크롤링하는 함수입니다.

9: def crawler(url, parser, css_selector):
10:    r = requests.get(url)
11:    soup = BeautifulSoup(r.content, parser)
12:    datas = soup.select(css_selector)

13:    if parser == 'lxml':
14:        print(datas[0].text, file=fileOut)
15:    else:
16:        for data in datas:
17:            rsss.append(data.text)

18: # 실행코드
19: print("크롤링을 시작합니다.")

20: crawler('http://file.mk.co.kr/news/rss/rss_50300009.xml','xml','item link')

21: print("rss 추출이 완료되었습니다.")

22: for link in rsss:
23:    try:
24:        crawler(link, 'lxml', '#article_body')
25:        print("="*20)
26:    except Exception as e:
27:        print(e)
28:        print('진행중이에요...')
29:        continue

30: print("크롤링을 종료합니다.")
31: fileOut.close()
       
저는 RSS뉴스 중 매일경제 신문의 부동산 섹션을 가져오는 프로그램을 작성해 보았어요.

7번행에 있는 코드는 가져온 기사를 파일로 저장해주는 코드이고

20번행에 있는 코드의 URL을 변경하면 본인이 원하는 RSS뉴스를 가져올 수 있습니다.


→ 프로그램 실행모습이에요, 크롤링 될 때 "=*20개"가 출력되면서 하나하나 크롤링 되는 거랍니다. 

    종료되면 크롤링을 종료합니다라는 내용이 출력되고 완료되요.

    결과는 직접 확인해보세요^^ 



그리고 가장 중요한 뉴스 기사의 무단전재 및 재배포는 금지입니다.

꼭 명심하세요.



하나하나 생각하고 있는 것들은 구현하다 보니 점점 파이썬이 재밌어지네요. 

다음에도 더 재미난 주제로 찾아올게요.