Ich denke, dass das Verbot von Online-Wahlen aufgehoben wird und die Bereitstellung von Wahlinformationen über das Internet populärer wird und die Verwendung von schlechten Anweisungen auffällig ist. Wie geht es Ihnen heutzutage?
Am 29. November 2014 fand vor den Wahlen zum Repräsentantenhaus eine Debatte der Parteiführer mit Nico-Studenten statt. Ich möchte den Parteiführern meinen Tribut zollen, die auf der von Dr. Azumi erwähnten "voreingenommenen Videoseite" erschienen und sich an Diskussionen beteiligten und auch untersuchten, ob sie tatsächlich voreingenommen waren.
Quellcode https://github.com/mima3/analyze_election
http://needtec.sakura.ne.jp/analyze_election/page/nicolive/lv200730443
Zusammenfassend lässt sich sagen, dass in den Meinungsumfragen von Zeitungen die schattige "nächste Generation" Aufmerksamkeit erregt, es gibt wilde Menschen, die allein Hunderte von Kommentaren abgeben, und es gibt mehr Yoshida-Führer der Sozialistischen Partei als Kaieda-Führer der Oppositionspartei. Das Ergebnis war, dass es ehrlich extrahiert wurde und auch ein Fehler.
http://needtec.sakura.ne.jp/analyze_election/page/nicolive/lv201303080
Wie erwartet ist die Anzahl der Kommentare geringer als am Samstagabend. Es gibt jedoch Leute, die allein etwa 200 Kommentare abgeben. Arbeit oder Schule.
Schließlich werden oft die Wörter "Abe" und "Next Generation" extrahiert. Es gibt jedoch eine Präsenz von "Kaieda" und "Democratic" aus der Zeit, als Nikosei es gesponsert hat.
Warum gibt es in der Parteiführerdebatte so viele Wörter wie "Tsubaki" und "Asahi" im Fall Tsubaki? (Stick)
Um Kommentare zu Nico Nico Live Broadcasting zu erhalten, müssen Sie zuerst Premium-Mitglied sein. Für reguläre Mitglieder liegt die Obergrenze bei etwa 1000.
Danach können Sie es erhalten, indem Sie die folgenden Schritte ausführen.
Der spezifische Code sieht folgendermaßen aus:
niconico.py
# coding: utf-8
import sys
import cookielib
import cgi
import urllib
import urllib2
from lxml import etree
import socket
import datetime
import time
import json
class NicoCtrl():
def __init__(self, nicovideo_id, nicovideo_pw):
self.nicovideo_id = nicovideo_id
self.nicovideo_pw = nicovideo_pw
#Einloggen
cj = cookielib.CookieJar()
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
req = urllib2.Request("https://secure.nicovideo.jp/secure/login")
req.add_data( urllib.urlencode( {"mail": self.nicovideo_id, "password":self.nicovideo_pw} ))
res = self.opener.open(req).read()
if not 'user_session' in cj._cookies['.nicovideo.jp']['/']:
raise Exception('PermissionError')
def _getjson(self, url, errorcnt):
#JSON wird möglicherweise abgeschnitten und kehrt auf den Weg zurück. Versuchen Sie es daher erneut
try:
res = self.opener.open(url, timeout=100).read()
return json.loads(res)
except ValueError:
if errorcnt < 3:
errorcnt = errorcnt + 1
return self._getjson(url, errorcnt)
else:
raise
def get_live_comment(self, movie_id):
self.movie_id = movie_id
#Holen Sie sich den Ort der Videoverteilung(getflv)
res = self.opener.open("http://watch.live.nicovideo.jp/api/getplayerstatus?v="+self.movie_id).read()
root = etree.fromstring(res)
messageServers = root.xpath('//ms')
if len(messageServers) == 0:
raise Exception('UnexpectedXML')
user_ids = root.xpath('//user_id')
if len(user_ids) == 0:
raise Exception('NotfoundUserId')
user_id = user_ids[0].text
thread_id = messageServers[0].find('thread').text
addr = messageServers[0].find('addr').text
port = int(messageServers[0].find('port').text) - 2725
#Holen Sie sich Waybackkey
waybackkeyUrl = ('http://watch.live.nicovideo.jp/api/getwaybackkey?thread=%s' % thread_id)
req = urllib2.Request(waybackkeyUrl)
res = self.opener.open(waybackkeyUrl).read()
waybackkey = cgi.parse_qs(res)['waybackkey'][0]
msUrl = 'http://%s:%d/api.json/thread?' % (addr, port)
chats = []
req = urllib2.Request(msUrl)
when = '4294967295'
while True:
data = {
'thread' : thread_id,
'version' : "20061206",
'res_from' : '-1000',
'waybackkey' : waybackkey,
'user_id' : user_id,
'when': when,
'scores' : '1'
}
list = self._getjson(msUrl+urllib.urlencode(data), 0)
chatcnt = 0
insertdata = []
for l in list:
if 'chat' in l:
if chatcnt == 0:
when = int(l['chat']['date']) - 1
if l['chat']['content'] != '/disconnect':
insertdata.append(l['chat'])
chatcnt += 1
chats = insertdata + chats
if chatcnt == 0:
break
return chats
nicolive.py
# coding: utf-8
import sys
from niconico_ctrl import NicoCtrl
import json
def main(argvs, argc):
if len(argvs) != 4:
print ('python nicolive.py email pass lv142315925')
return 1
nicovideo_id = argvs[1]
nicovideo_pw = argvs[2]
move_id = argvs[3]
t = NicoCtrl(nicovideo_id, nicovideo_pw)
chats = t.get_live_comment(move_id)
f = open(move_id + '.json', 'w')
f.write(json.dumps(chats))
f.close()
return 0
if __name__ == '__main__':
argvs = sys.argv
argc = len(argvs)
sys.exit(main(argvs, argc))
Dieses Skript generiert eine JSON-Datei mit Kommentarinformationen, indem Folgendes ausgeführt wird.
python nicolive.py E-Mail-Adresse Passwort lv200730443
Danach können Sie Nicos Kommentare analysieren, indem Sie die Kommentare in der erstellten JSON-Datei morphologisch analysieren, Wörter extrahieren, für jeden Benutzer summieren und etwas anderes tun, Tae-chan.
** niconico message (comment) Erklärung der Server-Tags und des Sendens ** http://blog.goo.ne.jp/hocomodashi/e/3ef374ad09e79ed5c50f3584b3712d61
** Erhalte Kommentare zu Nico Nico Videos ** http://d.hatena.ne.jp/MOOOVe/20120229/1330512626
Recommended Posts