블로그 이미지
잡다한 취미 생활 및 일상에 대한 소소한 이야기를 적어나가는 블로그입니다.
붉은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

오늘은 네이버 사이트의 날씨 정보에서 미세먼지 정보를 가져오는 코드를 살펴 보도록 하겠습니다.

상당히 간단한 코드로 미세먼지 정보를 가져올 수 있어요.

 

출근 시간이 다가와서... 사진으로 대체 합니다.

1. 크롬으로 웹사이트에서 검색 후 F12 버튼을 누르면 웹사이트 분석 도구창이 뜸

    --> 원하는 정보를 검색한 뒤 HTML구조 분석이 필요

2. 미세먼지 정보의 구조를 파악 했으면, 파이썬을 통해 해당영역 정보를 가져와야됨

3. 가져온 정보를 텍스트 부분만 출력

 

원하는 부분의 값이 제대로 출력 된 걸 확인할 수 있습니다.

 

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


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



아래 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개"가 출력되면서 하나하나 크롤링 되는 거랍니다. 

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

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



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

꼭 명심하세요.



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

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




이제 웹 크롤러를 만들어 볼까 합니다.


크롤러란 웹페이지의 내용을 가져오게 해주는 프로그램을 의미하며, 웹페이지의 내용을 가져오는 것을 크롤링 또는 스크래핑이라고 합니다.


우선 크롤링을 하기 전에 주의해야될 사항이 있는데 허락된 사이트에서만 크롤링을 해야된다는 점입니다.


예를들어 Naver나 Daum의 경우 크롤링을 허용하지 않고 있습니다.


자칫 잘못하다간 불법적인 영역이 될 수 있기 때문에 조심! 조심! 합시다.



크롤링이 가능한 사이트인지 아닌지 판별하기 위해서는 robots.txt파일을 살펴 봐야되요.
이 robots.txt는 무분별한 크롤링을 막고 컨트롤하기 위해 만들어진 규약이라고 하네요. 


ex)

1. www.naver.com/robots.txt

- 느낌이 허용하지 않는 거 같습니다. (Disallow가 있네요)


2. www.daum.net/robots.txt

- 여기도 마찬가지


3. www.google.com/robots.txt


- 구글도 제한이 있는거 같네요.


4. www.tistory.com/robots.txt

- 티스토리는 허용되는 것으로 보이네요.


크롤러를 만들기 전 불법/합법의 영역에 대한 내용을 확실히 파악하고 시작을 해야될 것 같습니다.


오늘은 여기까지, 항상 저작권 조심하세요^^;

다음 시간 부터는 크롤링이 허용된 사이트에서 크롤링 하는 방법에 대한 연습을 시작해보겠습니다.

이전 1 다음