# URL 목록만큼 반복 for i, url in enumerate(url_list): print("%d번째 뉴스기사 수집중... >> %s" % (i+1, url)) # URL에 접근하여 뉴스 컨텐츠를 가져온다. news_html = crawler.select(url, selector='#articleBodyContents', encoding='euc-kr') if not news_html: # 가져온 내용이 없다면? print("%d번째 뉴스기사 크롤링 실패" % (i+1)) else: # 가져온 내용이 있다면? print("%d번째 뉴스기사 크롤링 성공" % (i+1)) # 수집결과에서 불필요한 HTML 태그 제거 for item in news_html: crawler.remove(item, 'script') crawler.remove(item, 'a') crawler.remove(item, 'br') crawler.remove(item, 'span', {'class': 'end_photo_org'}) # 공백을 제거한 텍스트만 미리 준비한 변수에 누적 news_content += item.text.strip() #------------------------------------------------------------ # 4) 수집결과를 기반으로 형태소 분석 #------------------------------------------------------------ # 형태소 분석 객체를 통해 수집된 뉴스 본문에서 명사만 추출 nlp = Okt() nouns = nlp.nouns(news_content)
#/section12/04-use_mod.py # 크롤러 모듈 사용하기 # Crawler.py에 있는 75행 crawler객체 from Crawler import crawler from sample import naver_news_url # 가져올 페이지의 URL과 추출할 영역의 CSS 셀렉터를 지정한다 html = crawler.select(naver_news_url, encoding="euc-kr", selector="#articleBodyContents") # 크롤링 결과의 원소 수 만큼 반복하면서 불필요한 태그를 제거한다. for item in html: crawler.remove(item, "script") crawler.remove(item, "a") crawler.remove(item, "br") crawler.remove(item, "span")\ # 크롤링 처리된 최종 결과 print(item.text.strip())
#URL 목록만큼 반복 for i, url in enumerate(url_list): print("%d번째 뉴스기사 수집중...>>%s" % (i + 1, url)) #URL에 접근하여 뉴스 컨텐츠를 가져온다 news_html = crawler.select(url, selector="#articleBodyContents", encoding="euc-kr") if not news_html: #가져올 내용이 없다면? print("%d번째 뉴스기사 크롤링 실패" % (i + 1)) else: #가져올 내용이 있다면 print("%d번째 뉴스기사 크롤링 성공" % (i + 1)) #수집결과에서 불필요한 HTML 태그 제거 for item in news_html: crawler.remove(item, "script") crawler.remove(item, "a") crawler.remove(item, "br") crawler.remove(item, "span", {"class": "end_photo_org"}) #공백을 제거한 텍스트만 미리 준비한 변수에 누적 news_content += item.text.strip() #4) 수집결과를 기반으로 형태소 분석 #형태소 분석 객체를 통해 수집된 뉴스 본문에서 명사만 추출 nlp = Okt() nouns = nlp.nouns(news_content) #명사들에 대한 빈도수 검사 count = Counter(nouns)