【첫 API】Python으로 Qiita 기사를 취득해 본다

4124 단어 파이썬api

소개



처음 API를 두드렸기 때문에 개인적 비망록으로 남깁니다.

이번은 데이터 취득까지 밖에 하고 있지 않습니다만, 어느 쪽은 여러가지 해 보고 싶습니다.

액세스 토큰 얻기



Qiita API를 사용하려면 액세스 토큰을 얻습니다.

액세스 토큰은 API 사용자인지 여부를 결정하는 라이센스와 같습니다.

발행 방법입니다만, 우선은 Qiita의 자신의 페이지에 액세스 해,



위 화면 설정에서 설정 화면으로 이동하여,



애플리케이션 클릭



나는 이미 발행하고 있지만 개인 액세스 토큰에서 액세스 토큰을 발행합니다.

임의의 영숫자 열이 표시되므로 반드시 메모하십시오.

커맨드 라인으로 동작 확인



명령줄에서 curl 명령을 사용하여 먼저 검색할 수 있는지 확인합니다.
curl -s -H "Authorization: Bearer <先ほどのアクセストークンの値>" https://qiita.com/api/v2/authenticated_user/items
  • -s : 진행 상황을 표시하지 않음 (자동 모드)
  • -H : 요청 헤더 지정
  • C:\>curl -s -H "Authorization: Bearer <アクセストークンの値>" https://qiita.com/api/v2/authenticated_user/items
    [{"rendered_body":"\n\u003ch2\u003e\n\u003cspan id=\"はじめに\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eはじめに\u003c/h2\u003e\n\n\u003cp\u003e個人的備忘録として発信しています。\u003c/p\u003e\n\n\u003ch2\u003e\n\u003cspan id=\"起きたこ と\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E8%B5%B7%E3%81%8D%E3%81%9F%E3%81%93%E3%81%A8\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003e起きたこと\u003c/h2\u003e\n\n\u003cp\u003eリモートリポジトリにp・・・
    

    길기 때문에 생략. . 그렇지만, 잡히고 있을 것 같습니다.

    파이썬으로 구현하기



    명령 기반으로 할 수 있었기 때문에 이것을 python을 통해 실행합니다.

    조사하고 curl 명령을 python으로 변환하는 하나님의 도구를 발견했기 때문에 이것을 기반으로합니다.
    (어라, 나 구현 같은 것 아무것도 하고 있지 않다..)

    curl 명령을 python으로 변환하는 사이트

    변환한 것을 조금 고쳐서 다음과 같이 되었습니다.
    import requests
    import json
    import pprint
    
    URL = "https://qiita.com/api/v2/items"
    TOKEN = "<アクセストークンの値>"
    HEADER = {
        'Authorization': 'Bearer {}'.format(TOKEN),
    }
    
    response = requests.get(URL, headers=HEADER)
    pprint.pprint(response.json())
    

    pprint를 사용하여 조금 청소합니다.

    실행해 보면
    ・・・
      'title': '[Serverless Framework] yarn workspaceを使ったmonorepo',
      'updated_at': '2020-12-28T19:26:14+09:00',
      'url': 'https://qiita.com/allJokin/items/9316e5384a3bf7a4536b',
      'user': {'description': None,
               'facebook_id': None,
               'followees_count': 0,
               'followers_count': 0,
               'github_login_name': 'allJokin',
               'id': 'allJokin',
               'items_count': 1,
               'linkedin_id': None,
               'location': None,
               'name': '',
               'organization': None,
               'permanent_id': 600358,
               'profile_image_url': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/600358/8d5eba69a13ba6bef9ae50d23c9a1fa3e87b60ae/large.png?1607605958',
               'team_only': False,
               'twitter_screen_name': 'AllJokin',
               'website_url': None}}]
    ・・・
    

    잡히는 것 같습니다! !

    보충



    파이썬 3.8.0
    requests 2.25.1

    감상



    API의 사양서를 전혀 이해할 수 없고, 기사 정보 전부 가져올 수밖에 없었습니다. .
    한층 더 읽어들여, 잘 다룰 수 있게 되고 싶습니다.
    그리고, 이번은 하드 코딩하고 있습니다만, config 관리하는 등도 생각해 가고 싶습니다.

    다음은 아마존의 API에 도전하겠습니다.

    좋은 웹페이지 즐겨찾기