Home > スポンサー広告 > イースト辞書Webサービスで英語を調べる User JavaScript

スポンサーサイト

スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Comments:-

Comment Form

Trackback+Pingback:-

TrackBack URL for this entry
http://karafuto50.blog117.fc2.com/tb.php/175-79882982
Listed below are links to weblogs that reference
スポンサーサイト from Karafuto Blog

Home > スポンサー広告 > イースト辞書Webサービスで英語を調べる User JavaScript

Home > user javascript > イースト辞書Webサービスで英語を調べる User JavaScript

イースト辞書Webサービスで英語を調べる User JavaScript

user javascript

イースト英和辞典 User JavaScriptを実行

イースト和英辞典 User JavaScriptを実行

イースト辞書Webサービスは英和辞典、和英辞典、ウィキペディア日本語版を調べることができる。イースト辞書Webサービスを利用した Operaの User JavaScriptを作ってみた。

イースト辞書Webサービスは XMLを返すので、Yahoo! Pipes を利用して、JSONPを返すようにした。Operaのコンテキストメニューから User JavaScriptを呼び出し、データを取得して表示する。

イースト辞書Webサービス

イースト辞書Webサービスは単語を検索して、データを XML 形式で返す。辞書は「EJDIC英和辞典」「EDICT和英辞典」「ウィキペディア日本語版」がある。が、「ウィキペディア日本語版」の返すデータは少し複雑なので、「EJDIC英和辞典」「EDICT和英辞典」の 2つを使った。

SOAP版APIREST版API がある。今回は REST版APIを使用した。

メソッドは「検索メソッド」と「内容取得メソッド」がある。検索メソッドで調べたい単語の辞書項目のIDを取得して、内容取得メソッドでその辞書項目のIDの内容を取ってくる。

検索メソッド
リクエスト URL

http://btonic.est.co.jp/NetDic/NetDicV09.asmx/SearchDicItemLite?Dic=(辞書ID: EJdict(英和辞典), EdictJE(和英辞典), wpedia(ウィキペディア日本語版))&Word=(検索語)&Scope=(検索対象: HEADWORD(見出し語), ANYWHERE(全文))&Match=(一致指定: STARTWITH(前方), ENDWITH(後方), CONTAIN(部分), EXACT(完全))&Merge=(複数条件の結合方法: AND, OR)&Prof=XHTML&PageSize=(一度に取得する検索結果の数)&PageIndex=(検索結果の開始位置)

(例)http://btonic.est.co.jp/NetDic/NetDicV09.asmx/SearchDicItemLite?Dic=EJdict&Word=lang&Scope=HEADWORD&Match=STARTWITH&Merge=AND&Prof=XHTML&PageSize=10&PageIndex=0
XMLデータ
<?xml version="1.0" encoding="utf-8"?>
<SearchDicItemResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://btonic.est.co.jp/NetDic/NetDicV09">
  <ErrorMessage />
  <TotalHitCount>(検索に一致した数)</TotalHitCount>
  <ItemCount>(取得した項目数)</ItemCount>
  <TitleList>
    <DicItemTitle>
      <ItemID>(辞書項目のID)</ItemID>
      <LocID />
      <Title>
        <span class="NetDicTitle" xmlns="">(単語)</span>
      </Title>
    </DicItemTitle>
     .
     .
     .
    <DicItemTitle>
      <ItemID>(辞書項目のID)</ItemID>
      <LocID />
      <Title>
        <span class="NetDicTitle" xmlns="">(単語)</span>
      </Title>
    </DicItemTitle>
  </TitleList>
</SearchDicItemResult>
内容取得メソッド
リクエスト URL

http://btonic.est.co.jp/NetDic/NetDicV09.asmx/GetDicItemLite?Dic=(辞書ID: EJdict(英和辞典), EdictJE(和英辞典), wpedia(ウィキペディア日本語版))&Item=(辞書項目のID)&Loc=&Prof=XHTML

(例)http://btonic.est.co.jp/NetDic/NetDicV09.asmx/GetDicItemLite?Dic=EJdict&Item=022978&Loc=&Prof=XHTML
XML データ - 英和辞典(和英辞典の場合は GetDicItemResult > Body > div > divの下に複数の divがある。ウィキペディアの場合はその divの下に HTMLの要素がある。)
<?xml version="1.0" encoding="utf-8"?>
<GetDicItemResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://btonic.est.co.jp/NetDic/NetDicV09">
  <ErrorMessage />
  <Head>
    <div class="NetDicHead" xml:space="preserve" xmlns="">
      <span class="NetDicHeadTitle">(単語)</span>
    </div>
  </Head>
  <Body>
    <div class="NetDicBody" xml:space="preserve" xmlns="">
      <div>(意味、内容)</div>
    </div>
  </Body>
</GetDicItemResult>

イースト辞書Webサービスから JSONPを返す Yahoo! Pipes

XML(XMLHttpRequest)は JSONPのように外部ドメインのデータを取ってこれないので、Yahoo! Pipes を使う。

Yahoo! Pipesに入力された文字列を、イースト辞書Webサービスの検索メソッドに送り、検索に前方一致した最初の単語の辞書項目のIDを取得する。その辞書項目のIDをイースト辞書Webサービスの内容取得メソッドに送り、単語の意味を取得する。

  1. 「Text Input」モジュールで検索メソッド URLのパラメータ Word(単語)を入力する。
  2. 「Text Input」モジュールで検索メソッド URLのパラメータ Dic(辞書)を決める。初期設定は 'EJdict'(英和辞書)。
  3. 「Text Input」モジュールで検索メソッド URLのパラメータ Scope(検索対象)を決める。初期設定は 'HEADWORD'(見出し語)。
  4. 「Text Input」モジュールで検索メソッド URLのパラメータ Match(一致指定)を決める。初期設定は 'STARTWITH'(前方一致)。
  5. 「URLBuilder」モジュールで検索メソッドの URLを作成する。
  6. 「Fetch Data」モジュールで検索メソッドの XMLデータを取得する。
  7. 「Loop」モジュールに「URLBuilder」モジュールを入れて、内容取得メソッドの URLを作成する。
  8. 「Loop」モジュールに「Fetch Data」モジュールを入れて、内容取得メソッドの XMLデータを取得する。
  9. 「Rename」モジュールで単語と意味をコピーする。(これは Yahoo! Pipesで結果を確かめるために使用しているだけで、なくてもいい。)

作成したパイプ : イースト辞書Webサービス英和・和英検索

パイプの JSONPの URL

http://pipes.yahoo.com/pipes/pipe.run?Dic=(辞書ID: EJdict, EdictJE)&Match=(一致方法: STARTWITH, ENDWITH, CONTAIN, EXACT)&Scope=(検索対象: HEADWORD, ANYWHERE)&Word=(単語)&_id=sG9p_wI23RGWl1tvOTY80A&_render=json&_callback=(関数名)

JSONPのデータ - 英和辞典
(関数名)({
    "count":1(アイテム数),
    "value":{
        "title":"\u30a4\u30fc\u30b9\u30c8\u8f9e\u66f8Web\u30b5\u30fc\u30d3\u30b9(イースト辞書Webサービス)",
        "description":"Pipes Output",
        "link":"http:\/\/pipes.yahoo.com\/pipes\/pipe.info?_id=sG9p_wI23RGWl1tvOTY80A",
        "pubDate":"(日時)",
        "generator":"http:\/\/pipes.yahoo.com\/pipes\/",
        "callback":(関数名),
        "items":[{
            "loop:fetchdata":{
                "xmlns":"http:\/\/btonic.est.co.jp\/NetDic\/NetDicV09",
                "xmlns:xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance",
                "Head":{
                    "div":{
                        "xmlns":"",
                        "span":{
                            "content":"(単語)",
                            "class":"NetDicHeadTitle"},
                        "class":"NetDicHead",
                        "xml:space":"preserve"}
                },
                "ErrorMessage":null,
                "xmlns:xsd":"http:\/\/www.w3.org\/2001\/XMLSchema",
                "Body":{
                    "div":{
                        "xmlns":"",
                        "div":"(意味)",
                        "class":"NetDicBody",
                        "xml:space":"preserve"}
                }
            },
            "LocID":null,
            "loop:urlbuilder":"http:\/\/btonic.est.co.jp\/NetDic\/NetDicV09.asmx\/GetDicItemLite?Prof=XHTML&Loc=&Item=(辞書項目のID)&Dic=(辞書ID)",
            "ItemID":(辞書項目のID),
            "Title":{
                "span":{
                    "xmlns":"",
                    "content":"(単語)",
                    "class":"NetDicTitle"}
            },
            "description":"(意味)",
            "title":"(単語)"}]
    }
})

選択した文字列を Yahoo! Pipesに渡し、返ってきたデータを表示するUser JavaScript

  1. 文字列が選択されていなければ、何もしないで終わり。
  2. パイプから空のデータしか返ってこなければ、「翻訳に失敗しました」と表示する。
  3. パイプからデータが返ってくれば(必ずしも翻訳に成功したとは限らないが)、左上に表示する。
  4. マウスを少し動かすか、Escを押せば、表示を削除する。
operaオブジェクトの EASTDictionarySearch()メソッド
opera.EASTDictionarySearch(辞書, 一致方法)

第一引数で辞書を選択する。'ej'が英和辞典、'je'が和英辞典。初期値は英和辞典。

第二引数で一致方法を指定する。'start'は前方一致、'end'は後方一致、'contain'は部分一致、'exact'は完全一致。初期値は前方一致。後方一致、部分一致は何が返ってくるか分からないのであまり使えない。完全一致も前方一致でまかなえるので使わなくてもいいかと思う。

ダウンロード
eastwebservice_worddictionary.js

使い方

上のスクリプト(eastwebservice_worddictionary.js)をダウンロードして、User JavaScriptを保存するフォルダにコピーする。

Operaのメニューファイルの[Hotclick Popup Menu]に下記を追加する。Operaを再起動。

Item, "イースト英和辞典" = "Go to page, "javascript:opera.EASTDictionarySearch('ej','start')""
Item, "イースト和英辞典" = "Go to page, "javascript:opera.EASTDictionarySearch('je','start')""

調べたい文字列を選択して、コンテキストメニューから選べば、User JavaScriptが実行されて、調べた結果が左上に表示される。

注意点

  • Yahoo! Pipesからイースト辞書Webサービスのデータを二回取得するためちょっと時間がかかる。
  • イースト辞書Webサービス、Yahoo! Pipesのおかげでスクリプトは動いているので、2つのサービスの事情で機能しなくなることもある。
  • 和英辞典は英単語が大体 2、3出てくるだけなので、あまり役に立たないような。
  • サイトによっては表示が崩れることもある。

参考にしたページ

Comments:0

Comment Form

Trackback+Pingback:0

TrackBack URL for this entry
http://karafuto50.blog117.fc2.com/tb.php/175-79882982
Listed below are links to weblogs that reference
イースト辞書Webサービスで英語を調べる User JavaScript from Karafuto Blog

Home > user javascript > イースト辞書Webサービスで英語を調べる User JavaScript

おまかせリンク(R)
全記事表示リンク
Search
Meta
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。