[PYTHON] Holen Sie sich AKB48 Google+ Beiträge

AKB48 Ich habe ein Skript erstellt, um Google+ Beiträge zu erhalten. Erfahren Sie, wie Sie über Python auf Google+ zugreifen können.

Es besteht aus 4 Skripten. 1.gactget.py Ein Skript, das auf die Google + API zugreift. Geben Sie die Benutzer-ID und MaxResults an. MaxResults gibt an, wie viele Datensätze in einem Aufruf abgerufen werden. Da die Anzahl der API-Zugriffe begrenzt ist, passen Sie sie an, während Sie die Situation beobachten.

2.settings.py Anmeldeinformationen in einer separaten Quelle gespeichert. Dies dient der Sicherheit. Im Allgemeinen scheint es eine andere Quelle wie diese zu sein.

3.gidlist.py Holen Sie sich die Mitglieds-ID von der Google + Mitgliederlisten-Website von AKB48. Ich kratzte (schneide die notwendige Zeichenkette aus) mit einem Modul namens beautifulsoup.

4.gactprint.py Verwenden Sie die oben genannten drei Programme, um Aktivitäten abzurufen (Tweets und Beiträge auf Twitter).

gactget.py



#!/usr/local/pythonz/ENV/Python-2.7.3/bin/python
# coding: utf-8

import apiclient.discovery
import httplib2
import settings
import logging
import sys

#logging.basicConfig()
logging.getLogger().setLevel(getattr(logging, 'ERROR'))

def build_service(credentials, http, api_key=None):
    if ( credentials != None ):
        http = credentials.authorize(http)
    service = apiclient.discovery.build('plus', 'v1', http=http, developerKey=api_key)
    return service

def gact(ggtsid,maxr):

    httpUnauth = httplib2.Http()
    try:
        serviceUnauth = build_service(None, httpUnauth, settings.API_KEY)
    except:
        print 'build_service err'
        raise
    try:
        request = serviceUnauth.activities().list(userId=ggtsid, collection='public', maxResults = maxr)
    except:
        print 'serviceUnauth.activities().list err'
        raise
    activities = []

    try:
        activity = request.execute(httpUnauth)
    except:
        raise

    activities += activity['items']

    return activities

settings.py



import os

# 1. Go to:
#    https://code.google.com/apis/console
# 2. select choose your project.
# 3. Choose 'API Access'
# 4. If you have not generated a client id, do so.
# 5. Make your callback:
#   http://localhost:8090

CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
CLIENT_ID="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

gidlist.py


#!bin/python
#coding: utf-8

from BeautifulSoup import BeautifulSoup #@UnresolvedImport
import urllib

def gidlist_make():
    soup = BeautifulSoup(urllib.urlopen("http://www.google.com/intl/ja/+/project48/").read())
    lisoup=[]
    gidlist = []
    for lisoup in soup.findAll("li"):

        try:
            gidlist.append(lisoup['data-gplusid'])
        except:
            continue

    return gidlist

gactprint.py


#!bin/python
# coding: utf-8

import sys

import logging

import apiclient.discovery
import httplib2
import settings
import re

import ggtsidset
import gactget
import gactmain
import gidlist

logging.getLogger().setLevel(getattr(logging, 'ERROR'))


if __name__=='__main__':
    for ggtsid in gidlist.gidlist_make():
        try:
            activities = gactget.gact(ggtsid,5)
        except:
            print sys.exc_info()[1]
            r = re.compile('Daily Limit Exceeded')
            m = r.search(str(sys.exc_info()[1]))
            if m is None:
                errmsg = ''
            else:
                errmsg = str(m.group(0))

            if errmsg == 'Daily Limit Exceeded':
                print 'break,Daily Limit Exceeded'
                print ggtsid
                break
            else:
                continue

        for activity in activities:
            print activity['published']
            print activity['updated']
            print activity['actor']['displayName']
            print activity['actor']['id']
            print activity['object']['content']
            if activity['object'].has_key('attachments'):
                print activity['object']['attachments'][0]['url']
            else:
                continue
            print activity['object']['replies']['totalItems']
            print activity['object']['plusoners']['totalItems']
            print activity['object']['resharers']['totalItems']

[Einfallsreichtum]

    1. Unterbrechen Sie die Verarbeitung, wenn das API-Aufruflimit überschritten wird Wenn Sie Ihr tägliches API-Aufruflimit überschreiten, wird folgende Fehlermeldung angezeigt: In diesem Fall versuche ich zu brechen. Wenn Sie es weiter verarbeiten, wird das Limit weiterhin überschritten. <HttpError 403 when requesting https://www.googleapis.com/plus/v1/people/117147321771860727748/activities/public?alt=json&key=AIzaSyDgX5DQ0s8jnuMWKyWI0IfvO-YA8pNpNb4&maxResults=5 returned "Daily Limit Exceeded">
  1. Begrenzen Sie den Protokollausgangspegel Wenn Sie apiclient.discovery verwenden, ist Warnung in Ordnung. Ich habe einen Code namens logging.getLogger (). SetLevel (getattr (logging, 'ERROR')) hinzugefügt, um zu verhindern, dass er angezeigt wird. Es gibt kein Problem mit diesem Prozess.

    1. Automatisieren Sie die ID-Erfassung Hier habe ich mein Bestes gegeben. Wenn Sie die IDs anderer Parteien als Mitglieder hinzufügen möchten, können Sie den folgenden Code nach der Schleife für for lisoup inoup.findAll ("li") hinzufügen: in gidlist.py. gidlist.append ('113474433041552257864') #easy gidlist.append ('108897254135232129896') #Yoshisu gidlist.append ('112435502021367429566') # Shinobu gidlist.append ('113091703821013997975') #Kijima gidlist.append ('103803814106571203433') # Kitagawa

Recommended Posts

Holen Sie sich AKB48 Google+ Beiträge
Holen Sie sich sofort die Google+ ID des AKB-Mitglieds
Holen Sie sich ähnliche Beiträge mit Doc2Vec
Holen Sie sich Google Fit API-Daten in Python
Holen Sie sich Urlaub mit der Google Kalender-API
Holen Sie sich WordPress-Beiträge aus der letzten Woche