우리의 블로그

우리가 게시물과 게시는 멋진!

Python을 사용하여 Google 시트의 키워드가있는 네이버 뉴스 기사 모음 자동화

왜 스크랩 뉴스 기사?

전문 분야의 최신 뉴스 또는 관심의 특정 주제에 대해 업데이트 할 수 있습니다. 뉴스 웹 사이트를 개설하는 전통적인 방법, 관심의 필드를 입력, 모든 뉴스 피드를 통해 스크롤, 다시 동일한 링크를 열고, 별도의 파일에 몇 가지 유용한 링크 저장은 매일 사용을위한 매우 반복 될 수 있습니다. 따라서 Jupyter Notebook과 같은 간단한 오픈 소스 도구를 사용하여이 프로세스를 자동화하여 Python 코드 및 Google 시트를 실행하려고 시도했으며 시각적으로 매력적인 방법으로 필요한 모든 데이터를 저장할 수 있습니다.

이 블로그 게시물의 내용

  • 에 부품 한, 우리는 수동으로 열지 않고 Google 시트에 액세스하기 위해 Google API 자격 증명을 만드는 방법을 공유합니다.
  • 에 부품 두, 우리는 Jupyter Notebook의 Python에서 웹 스크랩하는 방법을 논의 할 것입니다.
  • 에 부품 3, 우리는 산출 자료 및 더 분석과 전시를 위한 자료를 저장하기 위하여 Google 장에 연결할 것입니다.

1부: Google API 자격 생성

  1. 구글 만들기 계정이 없는 경우.
  2. Google Developer Console을 엽니다.
  3. “Create Project” 버튼을 클릭하여 새로운 프로젝트 만들기,
  1. 프로젝트 이름과 ID를 입력하세요 (이 단계 이후에 변경할 수 없습니다)
  1. 프로젝트 열기 (refresh page if you do not see it) and click API -> 대시보드
  1. APIs Dashboard에서 필요한 API를 활성화하려면 "Enable APIs"를 클릭하십시오.
  1. 새로운 페이지가 오픈되어, “Google Drive API”와 “Google Sheets API”를 입력할 수 있습니다.
  2. API 모두 활성화.
  1. Google Drive API를 활성화한 후, “Credentials” 섹션으로 이동하고 “Create Credentials” -> “Service Account”.

Jupyter Notebook에서 Google 시트에 액세스하기 위해 이러한 자격 증명을 만들 필요가 있습니다.

  1. credentials 만들기 시작. 이름을 입력하고 (당신이 원하는 경우에) 선택 설정 건너뛰기. 역할의 경우 "Owner"를 선택하여 전체 액세스 (사용 전용)을 가질 수 있습니다.
  1. 자격 증명을 작성한 후, “서비스 계정” 섹션에서 볼 수 있습니다. 키에 액세스하려면 "Manage Keys" 섹션으로 이동하십시오.
  2. 이 서비스 계정의 키 만들기. 파일의 유형으로 "json"을 선택하십시오. 키를 만들 때 자동으로 키를 다운로드합니다.

자동 다운로드하지 않은 경우 KEYS 탭으로 이동하고 키를 수동으로 다운로드하십시오. 키는 기본적으로 서비스 계정의 모든 자격 정보가 있는 .json 형식 파일입니다. 키의 내용은 다음과 같습니다.

잘 했어! Google API 자격 증명을 준비하고 이제 코딩에있어!

Part Two: Python을 이용한 웹스크램핑

  1. 설치하기 Jupyter 노트북 Python을 실행합니다.
  2. 웹 페이지에서 정보를 얻으려면 웹 스크랩 라이브러리를 설치해야합니다. 아름다운Soup 그것의 쉬운 사용법 때문에.

cmd/terminal에서 다음 명령을 실행합니다.

pip install beautifulsoup4
  1. 연결하기 웹 페이지의 코드.

cmd/terminal에서 다음 명령을 실행합니다.

pip install requests
  1. 이제 환경이 설치되면 공백 python 파일을 만듭니다.
  2. 모든 라이브러리를 가져옵니다. 데이터 조작에 numpy가 필요합니다.
import requestsfrom bs4 import BeautifulSoupimport numpy as np
  1. 키워드를 배열로 정의, 예를 들어:
keywords = [“AI”, “neuralink”, “deep+learning”]
  1. 원하는 웹 사이트로 이동하고 검색 바에서 "EXAMPLE"를 입력합니다. 여기에 필요한 모든 분류를 적용 할 수 있습니다, 예를 들어, "최신"또는 "Popular"등. 페이지 URL을 복사합니다. 예를 들어, URL을 다음과 같이 얻습니다. https://search.naver.com/...s&질내 사정&sm=tab_....
  1. URL에서 EXAMPLE 단어를 "query"와 동일하게 볼 수 있습니다. 이것은 다른 키워드를 넣을 수있는 장소이며 각 키워드의 URL을 저장합니다. 우리는 루프에 사용 하 고 URL 문자열을 concatenate
url_list = []for n in np.arange(0, len(keywords)):url_each = "https://m.search.naver.com/..query="+keywords[n]+"&..."url_list.append(url_each)
  1. 이제 데이터를 얻기 위해 모든 URL이있을 때 다음 명령을 사용하여 페이지의 내용을 검색합니다.
r = requests.get(url_each)page = r.content
  1. 콘텐츠에서 필요한 정보를 이해하기 위해 원하신 페이지로 이동하십시오 (결과 페이지) 오른쪽 클릭 "페이지 소스". 당신은 볼 것 페이지의 (이 콘텐츠는) 원하는 유형을 찾습니다 (· · 기타) 예를 들어, 뉴스 웹 사이트에서 각 뉴스에는 제목이 있습니다. 첨부된 링크 태그 (href 구성 요소) 태그). 이제 원하는 부분을 얻기 위해 코드의 다음 쉬운 라인을 사용합니다.
soup = BeautifulSoup(page, 'html5lib')news = soup.find_all('a', class_='news_title')

이 매개 변수 (tag type, class name)은 웹 사이트에 따라 스크랩입니다.

  1. 원하는대로 데이터를 관리할 수 있지만, 우리의 경우, 우리는 각 키워드에 대한 데이터를 객체로 저장합니다. 그런 다음, 우리는 출력 데이터 프레임으로 사용될 큰 배열에서 결과로 모든 키워드에 대한 데이터를 결합했습니다.
  2. 다운로드 Pandas 데이터 프레임과 작업하는 라이브러리. 설치된 라이브러리를 사용하여 dataframe으로 resultant big array를 저장합니다.
import pandas as pdtable =  pd.DataFrame(big_list)

데이터 출력을 준비에 잘! 이제 Jupyter Notebook을 Google 시트에 연결하는 시간입니다.

부품 3 : Google 시트와 Jupyter 노트북 연결

  1. Jupyter Notebook을 사용하여 Google 시트로 로그인하려면 다음 라이브러리를 설치하십시오.
import gspreadfrom df2gspread import df2gspread as d2g
  1. 내 계정 Google API 자격 및 Google 계정으로 승인.
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('./YOUR CREDENTIALS FILE.json', scope) 
gc = gspread.authorize(credentials)

중요 참고 : 모든 파이썬 파일은 credentials 키 파일 (.json)과 같은 폴더에 있어야합니다. 이 단계에서 오류가 발생하면 Google Developer Console으로 이동하여 Google Drive와 Google Sheets API 모두 프로젝트에서 활성화됩니다.

  1. Google 스프레드 시트 파일을 만들고 전에 생성 된 서비스 계정 이메일과 공유하십시오. 서비스 계정 이메일을 보시려면 credentials 키 .json 파일을 열고 "client_email"을 찾습니다.
  1. 이제 다음 명령을 사용하여 데이터 프레임 (큰 테이블)을 Google 시트에 업로드합니다.
d2g.upload(table, spreadsheet_key, s_name, credentials=credentials)

각 변수에 대해 하나씩 가자.

  • table => Part 2의 단계 12에서 생성된 데이터 프레임.
  • spreadsheet_key => · Google 스프레드 시트를 열고 URL을 찾습니다.

spreadsheet_key는 기본적으로 아래의 URL의 강조된 부분입니다. https://docs.google.com/spreadsheets/d/1..longstringofletters.w의/ 편집..

그래서 "/d/"후와 "/edit.."부분의 문자와 숫자의 문자열입니다.

  • s_name => spreadsheet 이름, 당신은 어떤 문자열로 정의할 수 있습니다 (예를 들면, s_name = “TEST”)
  • credentials => 당신의 Google API credentials, 부분 2 단계로 정의 된 3. 업로드 방법을 변경하려면 옵션 변수를 정의 할 수 있습니다. 더 으로· 오류가 없으면 Jupyter는 다음과 같은 메시지를 표시합니다.

<Worksheet ‘TEST’ id:123..example..123>

좋은 일!

이제 생성 된 스프레드 시트로 이동하고 "TEST" 스프레드 시트 및 데이터 프레임을 볼 수 있습니다.

핀토~

전체 코드를 참조하십시오. RSS 피드

자주 묻는 질문