増田(AnonymousDiary)の、はてブ数カウントスクリプト
よ、お屠蘇は飲んだか?
正月はまあ、挨拶したりのんびりしたり、なんだか良くわからんテンションになるな。
id:yuta25
増田ディグるツールほすぃ 2014/01/01
こういうスクレイピングのこと、ディグるって言うのな。正月から一個覚えたよ。
めんどかったからPython3.xでざらっと書いたヤツまんまでツールにゃなってねぇけど、張っとくから使ってくれ。
まあ、誰かまともなプログラマにツールリクエストした方が良いかもしれんが、とりあえず動くヨ。
idとpasswordと何ページ分チェックしたいか入れてくれ。
はてな匿名ダイアリーにログインしたあと、『User IDの日記』とか出るだろ?あそこのページ数な。
ログインして、日記のPermalinkからリスト作って、はてなブックマーク件数取得API使って数えてる。
オレはエクセルで数字見ようと思ったから、取り合えずタブ区切りで出力してる。
そのへんはテキトーにやっとくれ。わからんかったらテキトーに聞いてくれ。
じゃ、だらだら良いお正月を!
# -*- encoding: utf-8 -*- from html.parser import HTMLParser import urllib.parse, http.cookiejar, urllib.request import time class MasudaParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.links = [] self.tmpurl = '' def handle_starttag(self, tag, attrs): if tag == 'a': self.tmpurl = attrs[0][1] def handle_data(self, data): if data == 'Permalink': self.links.append(self.tmpurl) # # # id = 'User ID' password = 'Password' pages = 10 # # hatelabo login # formData = {'key':id, 'password':password, 'mode':'enter'} params = urllib.parse.urlencode(formData).encode('utf-8') cookie = urllib.request.HTTPCookieProcessor(http.cookiejar.CookieJar()) opener = urllib.request.build_opener(cookie) res = opener.open('https://www.hatelabo.jp/login', params) # # AnonymousDiary list # parser = MasudaParser() for page in range(1, pages+1): time.sleep(3) res = opener.open('http://anond.hatelabo.jp/'+id+'/?page=' + str(page)) parser.feed(res.read().decode('utf-8')) # # Count Hatebu # for item in parser.links: masuda = 'http://anond.hatelabo.jp' + item apiurl = 'http://api.b.st-hatena.com/entry.count?url=' + masuda time.sleep(3) res = urllib.request.urlopen(apiurl) print(masuda, '\t', res.read().decode('utf-8'))