Pythonのスクリプトでニコニコ大百科の単語検索が行えるスクリプトです.
※ニコニコ動画のサイトは仕組みが変わり,従来のAPIが使えなくなりましたが,こちらは変わらず2022年1月現在も使えます.ニコニコ大百科の方は仕組みが変わっていないって事ですね.
import requests,pprint
from bs4 import BeautifulSoup as bs
def nico_search(p1,p2,query):
def url_get(data):
d = []
for j in data:
if len(j.find_all("a")) < 3:
d.append({
"word":j.a.get_text(),
"url":"https://dic.nicovideo.jp"+j.a.get("href")
})
else:
d.append({
"word":j.a.get_text(),
"url":None,
"転送url":j.find_all("a")[-1].get("href")
})
return d
param1 = {
"単語・生放送記事":"al",
"単語記事":"a",
"動画記事":"v",
"商品記事":"i",
"ユーザー記事":"u",
"コミュ記事":"c",
"生放送記事":"l",
"全記事":"all",
"お絵カキコ":"oekaki",
"ピコカキコ":"mml"
}
param2 = {
"タイトル":"t",
"本文(記事)":"b",
"タイトル・本文":"a"
}
wiki = "https://dic.nicovideo.jp/s/{0}/{1}/{2}".format(param1[p1],param2[p2],query)
res = requests.get(url=wiki)
sp=bs(res.content,"html.parser")
try:
page_num = sp.find("p",attrs={"class":"search-count_results"}).get_text().replace("検索結果: ","").replace("件","")
page_num = int(page_num)
except AttributeError:
print("検索結果が1件もありませんでした")
return None
data = sp.find_all("div",attrs={"class":"search-table_title"})[1:]
data_list = url_get(data)
st_pg_contents = sp.find("div",attrs={"class":"st-pg_contents"}).find_all("a")
if st_pg_contents:
for i in st_pg_contents[:-1]:
res = requests.get(url="https://dic.nicovideo.jp"+i.get("href"))
sp=bs(res.content,"html.parser")
data = sp.find_all("div",attrs={"class":"search-table_title"})[1:]
data_list = data_list + url_get(data)
else:
pass
pprint.pprint(data_list, indent=4)
print("検索結果数:",page_num)
print("取得ページ数:",len(data_list))
return data_list
nico_search("単語・生放送記事","タイトル",input('search word:'))
試し実行すると以下のように出力されますよ. 第一と第二引数を変更すれば,検索範囲が変わるため,検索結果も異なります.
search word:楔前部 検索結果が1件もありませんでした
search word:けいおん [ { 'url': 'https://dic.nicovideo.jp/a/%E6%9D%B1%E6%96%B9%E8%BB%BD%E9%9F%B3%E6%A8%82', 'word': '東方軽音樂'}, { 'url': None, 'word': 'ケーリュケイオン', '転送url': 'https://dic.nicovideo.jp/id/4148170'}, { 'url': None, 'word': 'ケリュケイオン', '転送url': 'https://dic.nicovideo.jp/id/4148170'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21mad', 'word': 'けいおん!MAD'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%21', 'word': 'けいおん!!'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21', 'word': 'けいおん!'}, { 'url': 'https://dic.nicovideo.jp/a/%E6%98%A0%E7%94%BB%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21', 'word': '映画けいおん!'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%81%AE%E5%B9%B4%E8%A1%A8', 'word': 'けいおん!の年表'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%83%AA%E3%83%9F%E3%83%83%E3%82%AF%E3%82%B9%E3%83%AA%E3%83%B3%E3%82%AF', 'word': 'けいおん!リミックスリンク'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%E4%B8%80%E8%A6%A7', 'word': 'けいおん!の関連商品一覧'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%83%8B%E3%82%B3%E5%89%B2%E3%83%AA%E3%83%B3%E3%82%AF', 'word': 'けいおん!ニコ割リンク'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E3%82%AB%E3%83%A9%E3%82%AA%E3%82%B1%E3%83%AA%E3%83%B3%E3%82%AF', 'word': 'けいおんカラオケリンク'}, { 'url': None, 'word': 'にじさんじ軽音部', '転送url': 'https://dic.nicovideo.jp/id/5555959'}, { 'url': 'https://dic.nicovideo.jp/a/%E8%BB%BD%E9%9F%B3%E6%A5%BD%E9%83%A8%E5%93%A1%E5%85%B1', 'word': '軽音楽部員共'}, { 'url': 'https://dic.nicovideo.jp/a/%E7%AB%B6%E5%A5%B3%28%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E3%81%AA%29', 'word': '競女(けいおんな)'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%81%AE%E9%96%A2%E9%80%A3%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7', 'word': 'けいおん!の関連項目一覧'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E5%8E%A8', 'word': 'けいおん厨'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E6%9E%B6%E7%A9%BA%E6%88%A6%E8%A8%98%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA', 'word': 'けいおん架空戦記シリーズ'}, { 'url': 'https://dic.nicovideo.jp/a/%E0%A4%95%E0%A4%AA%E0%A5%87%E0%A4%AA%E0%A4%BF%E0%A4%AA%E0%A5%8B%E0%A4%A8%21', 'word': 'कपेपिपोन!'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93m%40ster', 'word': 'けいおんm@ster'}, { 'url': 'https://dic.nicovideo.jp/a/utau%E4%B8%AD%E5%9B%BD%E8%AA%9E%E7%B3%BB%E9%9F%B3%E6%BA%90', 'word': 'UTAU中国語系音源'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%20%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%AA%E3%82%BA%E3%83%A0%E3%82%BF%E3%82%A4%E3%83%A0', 'word': 'けいおん! 放課後リズムタイム'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%20%E9%96%A2%E9%80%A3%E6%83%85%E5%A0%B1%E3%81%BE%E3%81%A8%E3%82%81', 'word': 'けいおん 関連情報まとめ'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%83%A2%E3%83%96%E3%82%AD%E3%83%A3%E3%83%A9', 'word': 'けいおん!モブキャラ'}, { 'url': 'https://dic.nicovideo.jp/a/%E5%AE%9A%E5%B1%B1%E6%B8%93%E6%B8%A9%E6%B3%89', 'word': '定山渓温泉'}, { 'url': 'https://dic.nicovideo.jp/a/36%E7%A7%92%E3%81%A7%E5%88%86%E3%81%8B%E3%82%8B%E3%80%8C%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%80%8D', 'word': '36秒で分かる「けいおん!」'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E3%81%A1%E3%82%83%E3%82%93', 'word': 'けいおんちゃん'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%83%80%E3%83%BC%E3%82%AF%E3%81%AA%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%83%AA%E3%83%B3%E3%82%AF', 'word': 'ダークなけいおん!リンク'}, { 'url': 'https://dic.nicovideo.jp/a/%E6%BC%A2%28%E3%81%8A%E3%81%A8%E3%81%93%29%E3%81%9F%E3%81%A1%E3%81%AE%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21', 'word': '漢(おとこ)たちのけいおん!'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%20%E7%94%BB%E5%83%8F%E4%BF%9D%E7%AE%A1%E5%BA%AB', 'word': 'けいおん! 画像保管庫'}, {'url': 'https://dic.nicovideo.jp/l/keion%21%21%21', 'word': 'keion!!!'}, { 'url': None, 'word': 'けいおん!!3年2組', '転送url': 'https://dic.nicovideo.jp/id/4349661'}, { 'url': 'https://dic.nicovideo.jp/a/%E7%84%A1%E7%94%9F%E7%89%A9%E7%B3%BB%E9%9F%B3%E6%BA%90%E5%8B%95%E7%94%BB%E6%8A%95%E7%A8%BF%E7%A5%AD', 'word': '無生物系音源動画投稿祭'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E3%81%B6%E3%81%AE%E3%81%AA%E3%81%8F%E9%A0%83%E3%81%AB', 'word': 'けいおんぶのなく頃に'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E5%AD%A6%E8%AC%9B%E7%BE%A9', 'word': 'けいおん学講義'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%82%E3%81%9A%E3%82%AD%E3%83%A3%E3%83%83%E3%83%88%28%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%29', 'word': 'あずキャット(けいおん!)'}, { 'url': 'https://dic.nicovideo.jp/a/%E8%BB%BD%E9%9F%B3%E6%A5%BD', 'word': '軽音楽'}, { 'url': None, 'word': '映画「けいおん!」', '転送url': 'https://dic.nicovideo.jp/id/4499302'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E3%82%A2%E3%83%B3%E3%83%81', 'word': 'けいおんアンチ'}, { 'url': 'https://dic.nicovideo.jp/a/%E6%98%A0%E7%94%BB%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21go%21go%21fukutoshin%E3%82%B8%E3%83%A3%E3%83%83%E3%82%AF%E3%80%9C%E6%B1%A0%E8%A2%8B%E3%83%BB%E6%96%B0%E5%AE%BF%E3%83%BB%E6%B8%8B%E8%B0%B7%E3%80%9C', 'word': '映画けいおん!GO!GO!FUKUTOSHINジャック〜池袋・新宿・渋谷〜'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%21%20%E3%83%A9%E3%82%A4%E3%83%96%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%20%E3%80%9Ccome%20with%20me%21%21%E3%80%9C', 'word': 'けいおん!! ライブイベント 〜Come with Me!!〜'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%20%E3%83%A9%E3%82%A4%E3%83%96%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%20%E3%80%9C%E3%83%AC%E3%83%83%E3%83%84%E3%82%B4%E3%83%BC%21%E3%80%9C', 'word': 'けいおん! ライブイベント 〜レッツゴー!〜'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%81%AE%E6%A5%BD%E6%9B%B2%E3%81%AE%E4%B8%80%E8%A6%A7', 'word': 'けいおん!の楽曲の一覧'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E3%81%AE%E3%83%95%E3%82%A3%E3%82%AE%E3%83%A5%E3%82%A2%E4%B8%80%E8%A6%A7', 'word': 'けいおん!のフィギュア一覧'}, { 'url': 'https://dic.nicovideo.jp/l/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E5%9B%A3%E4%BD%93%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%83%AA%E3%83%B3%E3%82%AF', 'word': 'けいおん!団体コミュニティリンク'}, { 'url': 'https://dic.nicovideo.jp/a/%E9%81%8A%E2%98%86%E6%88%AF%E2%98%86%E7%8E%8Bkd%27s', 'word': "遊☆戯☆王KD's"}, { 'url': None, 'word': '映画けいおん', '転送url': 'https://dic.nicovideo.jp/id/4499302'}, { 'url': 'https://dic.nicovideo.jp/a/%E8%BB%BD%E9%9F%B3%E9%83%A8%21', 'word': '軽音部!'}, { 'url': None, 'word': 'けいおん!×インド', '転送url': 'https://dic.nicovideo.jp/id/3351972'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%212%E5%B9%B4%E7%94%9F%E3%83%88%E3%83%AA%E3%82%AA', 'word': 'けいおん!!2年生トリオ'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%82%88%E3%82%8A%E3%81%AC%E3%81%8D%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%21', 'word': 'よりぬきけいおん!!'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%82%88%E3%82%8A%E3%81%AC%E3%81%8D%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21', 'word': 'よりぬきけいおん!'}, { 'url': None, 'word': 'けいおん学', '転送url': 'https://dic.nicovideo.jp/id/4601546'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93', 'word': 'けいおん'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E9%83%A8', 'word': 'ニコニコけいおん部'}, { 'url': None, 'word': '映画 けいおん!', '転送url': 'https://dic.nicovideo.jp/id/4499302'}, { 'url': 'https://dic.nicovideo.jp/a/%E6%A9%9F%E5%8B%95%E6%88%A6%E5%A3%ABk-0n%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0', 'word': '機動戦士K-0Nガンダム'}, { 'url': 'https://dic.nicovideo.jp/a/mmd%E3%81%91%E3%81%84%E3%81%8A%E3%82%93', 'word': 'MMDけいおん'}, { 'url': None, 'word': 'けいおん!(劇場版アニメ)', '転送url': 'https://dic.nicovideo.jp/id/4499302'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E8%B1%9A', 'word': 'けいおん豚'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E6%94%B9', 'word': 'けいおん!改'}, { 'url': 'https://dic.nicovideo.jp/a/%E6%A1%9C%E9%AB%98%E8%BB%BD%E9%9F%B3%E9%83%A8', 'word': '桜高軽音部'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%20%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%A9%E3%82%A4%E3%83%96%21%21', 'word': 'けいおん! 放課後ライブ!!'}, { 'url': None, 'word': 'けいおん!劇場版', '転送url': 'https://dic.nicovideo.jp/id/4499302'}, { 'url': None, 'word': '劇場版けいおん!', '転送url': 'https://dic.nicovideo.jp/id/4499302'}, { 'url': 'https://dic.nicovideo.jp/l/%E3%82%B1%E3%82%A4%E2%99%AA', 'word': 'ケイ♪'}, { 'url': None, 'word': '総統閣下×けいおん!', '転送url': 'https://dic.nicovideo.jp/id/4446112'}, { 'url': None, 'word': 'MMDけいおん!', '転送url': 'https://dic.nicovideo.jp/id/4256439'}, { 'url': None, 'word': '純ちゃん(けいおん!)', '転送url': 'https://dic.nicovideo.jp/id/4186404'}, { 'url': 'https://dic.nicovideo.jp/a/%E6%89%8B%E6%8F%8F%E3%81%8D%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21', 'word': '手描きけいおん!'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21op%E3%83%91%E3%83%AD', 'word': 'けいおん!OPパロ'}, { 'url': None, 'word': 'けいおん!!OPパロ', '転送url': 'https://dic.nicovideo.jp/id/3285025'}, { 'url': 'https://dic.nicovideo.jp/a/%E8%BB%BD%E9%9F%B3%E9%83%A8%E5%93%A1', 'word': '軽音部員'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%86%E3%82%93%E3%81%96%E3%82%93%E2%99%AA', 'word': 'うんざん♪'}, {'url': 'https://dic.nicovideo.jp/a/%E9%B6%8F%E9%9F%B3%21', 'word': '鶏音!'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%E3%81%AF%E7%94%9F%E3%81%8D%E3%81%8C%E3%81%84', 'word': 'けいおんは生きがい'}, { 'url': None, 'word': 'K-ONガンダム', '転送url': 'https://dic.nicovideo.jp/id/4251389'}, { 'url': None, 'word': '機動戦士K-ONガンダム', '転送url': 'https://dic.nicovideo.jp/id/4251389'}, { 'url': None, 'word': 'K-0Nガンダム', '転送url': 'https://dic.nicovideo.jp/id/4251389'}, { 'url': 'https://dic.nicovideo.jp/a/%E5%85%89%E5%9D%82%E9%AB%98%E6%A0%A1%E8%BB%BD%E9%9F%B3%E6%A5%BD%E9%83%A8', 'word': '光坂高校軽音楽部'}, { 'url': 'https://dic.nicovideo.jp/a/%E3%81%91%E3%81%84%E3%81%8A%E3%82%93%21%E6%BC%94%E5%A5%8F%E8%80%85%E3%83%AA%E3%83%B3%E3%82%AF', 'word': 'けいおん!演奏者リンク'}, { 'url': 'https://dic.nicovideo.jp/a/%E6%9F%91%E6%A9%98%E7%B3%BB%E8%BB%BD%E9%9F%B3%E9%83%A8', 'word': '柑橘系軽音部'}, { 'url': None, 'word': 'けいおん!OPパロリンク', '転送url': 'https://dic.nicovideo.jp/id/3285025'}, { 'url': None, 'word': 'けいおん!は生きがい', '転送url': 'https://dic.nicovideo.jp/id/3642030'}, { 'url': None, 'word': '東方軽音楽', '転送url': 'https://dic.nicovideo.jp/id/2729803'}, { 'url': None, 'word': 'K-ON!', '転送url': 'https://dic.nicovideo.jp/id/902347'}] 検索結果数: 86 取得ページ数: 86