Пример #1
0
def create_google_news(keyword_input):
    limit = int(input("검색할 뉴스 개수를 입력하세요 : "))
    # 뉴스 데이터 딕셔너리
    news_dict = google_news_clipping(keyword_input, limit)
    # 뉴스 객체 저장 리스트
    news_items = []
    # 뉴스 객체 생성
    for i in range(len(news_dict['title'])):
        news_item = News(news_dict['title'][i], news_dict['link'][i], news_dict['contents'][i], news_dict['agency'][i], news_dict['date'][i], news_dict['time'][i])
        news_items.append(news_item)
    # 크롤링한 기사 출력
    for news_item in news_items:
        news_item.print()
    return news_items
Пример #2
0
def create_naver_news(keyword_input):
    limit_page = int(input("검색할 페이지 범위를 입력하세요 : "))
    # 한 번에 한 페이지 크롤링하기(현재 사용 X)
    '''
    # 뉴스 정보 딕셔너리 저장 리스트
    news_dict_list = []
   
    for page in range(limit_page):
        news_dict = naver_news_clipping(keyword_input, page)
        news_dict_list.append(news_dict)
    '''

    # 동시에 여러 페이지 크롤링하기(병렬화)
    page_list = list(range(limit_page))
    pool = Pool(processes=4)
    crawling_func = partial(naver_news_clipping, keyword_input)
    # 뉴스 정보 딕셔너리 저장 리스트
    news_dict_list = pool.map(crawling_func, page_list)

    # 뉴스 객체 저장할 리스트
    news_items = []
    # 딕셔너리 데이터 이용하여 뉴스 객체 생성하기
    for j in range(len(news_dict_list)):
        for i in range(len(news_dict_list[j]['title'])):
            news_item = News(news_dict_list[j]['title'][i],
                             news_dict_list[j]['link'][i],
                             news_dict_list[j]['contents'][i],
                             news_dict_list[j]['agency'][i],
                             news_dict_list[j]['date'][i],
                             news_dict_list[j]['time'][i])
            news_items.append(news_item)

    # 크롤링한 기사 출력
    for news_item in news_items:
        news_item.print()

    # 뉴스 객체 리스트 반환
    return news_items