#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import cookielib
import os
import time
#
# ニコニコ動画でキーワード検索し、その検索画面を保存するプログラム by福ヲタ
#
# 参照元 "http://d.hate1na.ne.jp/yumimue/20080109/1199878021"
# 参照元 "http://d.hatena.ne.jp/y_yanbe/20070827/1188160390"
# 参照元 http://d.hatena.ne.jp/yumimue/20080101/1199148663
# 参照元 http://python.blog-slime.com/2007/07/pythonhttpcookie.html
word = "swf+or+flash+or+フラッシュ" # 検索文字列
urllogin = "https://secure.nicovideo.jp/secure/login_form" #ログイン先
mail = "hogehoge@ahoo.jp" #メールアドレス (これは架空のものです)
password = "himitu" #パスワード (実際のパスワードは秘密)
next = "次へ</a></td></tr></table>"
konzatu = "<h1>短時間での連続アクセスはご遠慮ください</h1>"
cj = cookielib.CookieJar() #ネットへアクセスする為の準備。クッキーとか。
cjhdr = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cjhdr)
opener.addheaders = [('User-agent', 'Monthly_.swf_ranking_tag_retrieval_tool/v20101113(http://twitter.com/fukuwota)')]
#User-agentの設定・・・戀塚さんがtwitterで設定してほしいと言っていたので。
r = opener.open("https://secure.nicovideo.jp/secure/login?site=niconico","mail=%s&password=%s" % ( mail, password )).read()
print "Login now..."
time.sleep(10)
page = 1
kensaku = 9
while kensaku > 0 :
page2 = str(page)
kenkon = 0
waittime = 0
flag = False
while flag == False :
try:
r = opener.open("http://www.nicovideo.jp/search/" + word + "?page=" + page2 + "&sort=f&order=a").read()
except urllib2.HTTPError ,e:
#ここから、検索時に規制が掛かったときに待つ処理
waittime = waittime + 60
print( "Now wait " + str(waittime) + "sec." )
time.sleep(waittime)
else:
kenkon = r.find(konzatu)
print kenkon
if kenkon < 0:
waittime = 0
flag = True
else:
#ここから、検索時に規制が掛かったときに待つ処理
waittime = waittime + 60
print( "Now wait " + str(waittime) + "sec." )
time.sleep(waittime)
kensaku = r.find(next) #次ページが有るかの判定。無かったらkensaku=0になるので、whileループから外れる。
f = open("kensaku-tag-" + page2 + ".htm", 'w') #検索したページをhtm形式で保存
f.write(r)
f.close
print("loading html " + page2 + "page")
page = page + 1 #ページ番号を1つ増やす。
time.sleep(20)
###なお、このプログラム、2011年6月中旬に行われたシステム改修により、使えなくなりました・・・orz
最終更新:2011年06月15日 23:19