Python을 사용하여 Meet-Up API 정리

13140 단어 pythonsql
우리는 최근에 당신이 참여할 수 있는 프로젝트에 대한 아이디어를 발표하여 이력서에 추가하여 프로그래밍에 관한 지식을 더 많이 이해하도록 도와줍니다.
이 중 하나는 이벤트 집합 사이트를 만들기 위해 Meet-up 및 Eventbrite API를 삭제하는 것과 관련이 있습니다.
이것은 몇 가지 개념을 채택할 수 있는 좋은 프로젝트이다.이 아이디어로 경보 시스템을 만들 수 있습니다. 사용자가 API 키를 입력하여 관심 있는 로컬 이벤트를 추적할 수 있습니다.어떤 리얼리티가 도착하기 전에 유행할지 추적 지표를 통해 예측할 수 있는 사이트를 개발할 수 있다.
솔직히 말하면 API는 상당히 많은 데이터를 제공하고 심지어는 구성원의 이름을 제공할 수 있다. (구성원이 신분 검증을 거쳤다면 전자메일도 있다고 한다.)이거 재밌어요. - 이 데이터를 당신의 사이트의 기초로 사용할 수 있어요!

시작하기


이 프로젝트를 시작하려면 백엔드 구축에 필요한 기본 부분을 분해하십시오.필요한 경우:
  • API 스크레이퍼
  • 데이터베이스 인터페이스
  • 운영 데이터베이스
  • 데이터 웨어하우스(옵션)
  • ORM
  • 우선, 스크레이퍼 클래스를 개발해야 합니다.이 클래스는 현재 진행 중인 특정 API 호출을 모를 것입니다.이렇게 하면 호출마다 특정한 클래스나 스크립트를 생성하는 것을 피할 수 있습니다.또한 API가 변경될 때 모든 변수를 업데이트하는 데 그렇게 많은 시간을 들일 필요가 없습니다.
    반대로 설정을 검사하고 업데이트하기만 하면 됩니다.
    그럼에도 불구하고, 우리는 즉각 완전히 추상적인 유형을 개발하는 것을 건의하지 않는다.처음부터 하드코딩 변수가 없는 완전한 추상적인 클래스를 구축하는 것은 어려울 수도 있다.만약 어떤 오류가 발생하거나 작용하지 않는다면 추상층의 원인으로 인해 디버깅은 더욱 어려울 것이다.
    우리는 효과적인 작품을 개발하는 것부터 시작할 것이다.
    당신이 해야 할 첫 번째 결정은 삽 운반기가 데이터를 어디에 놓을지 하는 것입니다.우리는 매일 자신의 폴더가 있는 폴더 구조를 만들고 있습니다.
    서버, S3 또는 원본 파일 구조와 유사한 일반 폴더를 사용할 수 있습니다.JSON 파일에 저장된 원본 데이터를 쉽게 저장할 수 있습니다.다른 데이터 저장 방법, 예를 들어 csv와tsv는 데이터를 포맷하여 설명하는 방식으로 버려진다.
    기본 각본을 봅시다.코드 라이브러리를 어떻게 더 잘 설정하고 재구성해서 더 잘 개발할 수 있는지 생각해 보세요.
    import requests
    import time
    import json
    import sys
    import codecs
    import csv
    
    
    class MeetUpScraper:
    
        api_call_type=""
        config_file="meet_up_config.json"
    
        def get_results(self,params,config_data):
            request=requests.get(config_data[self.api_call_type]['api_endpoint'],params=params)
            data=request.json()
            return data
    
        def main(self,p_config_file):
            cities=[("Seattle","WA")]
            api_key="APIKEY"
    
            for (city,state) in cities:
                per_page=200
                results_we_got = per_page
                offset=0
                while(results_we_got==per_page):
    
                    response = self.get_results(
                    {"sign":"true","country":"US","city":city,"state":state,"radius":10,"key":api_key,"page":per_page,"offset":offset}
                    ,p_config_file
                    )
                    time.sleep(1)
                    offset+=1
                    data={}
                    results_we_got = response['meta']['count']
                    data = response['results']
                    export_file= open("data/data_"+self.api_call_type+"_"+str(offset)+".txt","w")
                    json.dump(data,export_file)
                    export_file.close()
    
        def __init__(self,api_call_type):
            self.api_call_type=api_call_type
            config=open(self.config_file)
            config_data=json.load(config)
            self.main(config_data)
    
    MeetUpScraper("get_event") #for testing
    

    가장 중요한 부분은 API 키입니다.테스트할 때 자신의 API 키를 하드코딩하기 쉽다.그러나 최종 목표가 여러 사용자가 이 데이터에 접근할 수 있도록 하는 것이라면 API 키를 설정해야 합니다.
    업데이트할 다음 부분은 추출 중인 데이터에 대한 하드 인코딩 인용입니다.이 하드코딩은 코드가 하나의 API 호출과 함께 작동할 수 있도록 제한한다.하나의 예는 우리가 어떻게 서로 다른 단점을 추출하고 되돌아오는 필드에서 추출하고자 하는 필드를 인용하는가입니다.
    이 예에서 우리는 단지 JSON에 모든 내용을 저장할 뿐이다.까다롭기를 원할 수도 있습니다. 이 경우, 모든 필드에 어떤 열을 추가하기를 원할 수도 있습니다.
    예:
    {
    "get_group":
    {
      "api_endpoint":"http://api.meetup.com/2/groups"
    },
    "get_event":
        {
          "row_list":
            ["country", "city", "created", "rating", "description", "rating", "join_mode", "members", "lon", "lat", "id", "state","urlname"],
          "insert_script":
    
          "INSERT into raw_meet_up_3 (country, city, created, rating, description, rating_2,join_mode, members, lon, lat, id, state,urlname) VALUES( %s )",
             "api_endpoint":"http://api.meetup.com/2/open_events"
        }
    }
    
    
    이렇게 하면 어떤 API 이벤트를 사용할지 모르는 스크레이퍼를 만들 수 있습니다.그것은 코드를 제외하면 유지보수가 더욱 쉽다.
    예를 들어, Meet up에서 API 끝점이나 열 이름을 변경하면 어떻게 됩니까?알겠습니다. 10개의 다른 코드 파일에 들어갈 필요가 없습니다. 프로필을 변경하기만 하면 됩니다.
    다음 단계는 모든 데이터를 불러오고 저장하는 데이터베이스와 ETL을 만들고, JSON 파일의 데이터를 자동으로 조작 스타일 데이터베이스로 해석하는 시스템이다.이 데이터베이스는 관심 있는 이벤트를 추적하는 데 사용할 수 있습니다.또한 데이터 창고를 창설하면 추적 지표를 도울 수 있다.
    아마도 당신이 흥미를 느끼는 것은 활동이 사람을 끌어당기는 속도나 활동 판매 속도가 얼마나 빠른지 하는 것이다.
    이를 바탕으로 어떤 종류의 설명이나 그룹이 슬롯을 빨리 사용할지 분석할 수 있습니다.
    개인적으로는 재미있는 분석을 많이 할 수 있다.
    앞으로 몇 주와 몇 달 동안 우리는 이 프로젝트를 계속 개발할 것이다.이것은 데이터베이스를 구축하는 것을 포함하고 분석을 할 수 있다. 등등!
    우리는 네가 이 문장을 좋아하길 바란다.
    만약 당신이 이 소프트웨어 공학에 관한 동영상을 좋아한다면, 이 동영상들도 고려해 보세요!
    The Advantages Healthcare Providers Have In Healthcare Analytics
    142 Resources for Mastering Coding Interviews
    Learning Data Science: Our Top 25 Data Science Courses
    The Best And Only Python Tutorial You Will Ever Need To Watch
    4 Must Have Skills For Data Scientists
    What Is A Data Scientist

    좋은 웹페이지 즐겨찾기