Created
February 13, 2016 06:00
-
-
Save takoika/8be5a7da612417989bfa to your computer and use it in GitHub Desktop.
Qiita api wrapper for crowling for limited purpose.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
import urllib | |
import urllib.parse | |
import urllib.request | |
import json | |
sleep_time = 4 # Sleep time 4 seconds is determined for fear of exceeding request limits. 1request/4sec < 1000request/1hour | |
api_url = "http://qiita.com/api/v2/" | |
def getQiita(bearer_token,data_obj,protocol): | |
url = api_url+protocol | |
full_url = url+ '?' + urllib.parse.urlencode(data_obj) | |
req = urllib.request.Request(full_url) | |
req.add_header('Authorization','Bearer '+bearer_token) | |
response = urllib.request.urlopen(req) | |
return json.loads(response.read().decode('utf-8')),response.info() | |
def getQiitaTags(bearer_token,page,per_page=100,sort=False): | |
args = {'per_page':per_page,'page':page} | |
if sort: | |
args[sort] = 'count' | |
d,h = getQiita(bearer_token,args,'tags') | |
return d,int(h['Total-Count']) | |
def getQiitaItemsByTag(bearer_token,tag,page,per_page=100,sort=False): | |
args = {'per_page':per_page,'page':page} | |
d,h = getQiita(bearer_token,args,'tags/{0}/items'.format(urllib.parse.quote(tag))) | |
return d,int(h['Total-Count']) | |
def getQiitaUsersByItemStocked(bearer_token,item_id,page,per_page=100): | |
args = {'per_page':per_page,'page':page} | |
d,h = getQiita(token,args,'items/{0}/stockers'.format(urllib.parse.quote(item_id))) | |
return d,int(h['Total-Count']) | |
def safeSleep(): | |
time.sleep(sleep_time) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment