GoogleやYahooで使える便利な検索演算子8選

Google検索

Google検索やYahoo!検索で使える検索演算子を8個まとめています(一部Yahoo!では使えない演算子があります)。

検索演算子を使いこなせば、目的のWebページを素早くピンポイントで探せるようになります。

複数のキーワードで同時に検索する

複数のキーワードを同時に指定して、どちらか一方にマッチする検索結果を得たいときは、OR検索を使います。

使い方:「キーワードA OR キーワードB」

OR検索

例1:呼称の違いに対応

「ガラケー OR フィーチャーフォン」

例2:複数の候補を同時に検索

「東京 OR 神奈川 OR 千葉」

「OR」の部分は「|」でも代用できます。

例えば、東京または神奈川の物件を検索したいときには、「物件 東京 | 神奈川」とします。

検索結果から特定キーワードを除外する

あるキーワードの検索結果から、特定のキーワードにマッチする結果を除外するには、マイナス検索を使います。

使い方:「キーワードA -除外したいキーワードB」

マイナス検索

例:「スマホ」の検索結果から「ソフトバンク」を含むものを除外

「スマホ -ソフトバンク」

応用例:OR検索との組み合わせ

「スマホ -ソフトバンク OR au」

「スマホ」の検索結果から「ソフトバンク」と「au」にマッチするものを除外しています。

フレーズを検索する

複数の単語でワンセットになっている語句を検索するときは、フレーズ検索を使います。完全一致検索と呼ぶこともあります。

本やDVDのタイトル、偉人の言葉などから検索したいときに便利です。

使い方:「"キーワードA キーワードB"」

フレーズ検索

例1:英語の慣用表現や歌詞

「"you are the one"」

例2:偉人の言葉

「"失敗は成功のもとである"」

あいまいな語句を検索する

人名や建物などの、名称の記憶があいまいなときにはワイルドカード(*)を使います。単純に長いキーワードを入力するのが面倒なときにも使えます。

ワイルドカード

例:難しい漢字

「草*剛」

例2:あいまい検索

「国土交通省 *庁」

応用例:マイナス検索との組み合わせ

「東京*大学 -東京大学」

東京で始まって大学で終わる語句から「東京大学」を除外します。東京経済大学や東京女子大学が上位に表示されます。

応用例2:フレース検索との組み合わせ

「"絶対*マインド*"」

『絶対達成マインドのつくり方』という書籍を検索したいのに、正式名称が飛び飛びでしかわからないときの検索方法です。ワイルドカード(*)は1度に2個以上使えます。

定義を検索する

キーワードの定義を知りたいときにはdefine演算子を使います。この機能はYahoo!検索では使えません。

使い方:「define:キーワード」

define演算子

例:定義を検索

「define:マーケティング」

define演算子を使った検索結果の大半は、Wikipediaの内容が表示されます。

ファイル形式を指定して検索する

PDFなど、検索したいファイル形式がすでに決まっているときは、filetype演算子を使いいます。

使い方:「filetype:ファイル形式」

filetype演算子

例:Excelファイルのみを抽出

「統計 filetype:xls」

「統計」というキーワードの検索結果から、ファイル形式がxls(MS Excel)のものを抽出しています。

filetypeにはxlsの他にpdf(Adobe PDF)、doc(MS Word)、swf(Flash)などのファイル形式を指定できます。

特定のURLの内部を検索する

特定のドメインやページを検索するときは、site演算子を使います。

使い方:「site:URL」

site演算子

例:特定のサイトのページ内から検索

「evernote site:webtopi.net」

http://www.」は省略できます。サイト内検索がないページで重宝します。

応用例:OR検索との組み合わせ

「作業用bgm site:youtube.com OR site:nicovideo.jp」

上記の例はYouTubeとニコニコ動画から「作業用BGM」を検索しています。

ただし、「site:nicovideo.jp」で検索すると、「live.nicovideo.jp」(ニコ生)や「dic.nicovideo.jp」(大百科)まで検索されてしまいます。ニコニコ動画のみを検索したい場合は「www.」をつけて、「site:www.nicovideo.jp」とします。

数値の範囲を指定して検索する

使い方:「数値A..数値B」

範囲指定検索

例:3000~5000円のメモリを検索

「メモリ 3000..5000 円」

範囲指定する数値は、最大値や最小値のどちらか一方のみでもOKです。例えば「流行語大賞 2010..」とすると、2010年から現在までの流行語大賞を検索できます。

関連記事

Yahoo!PipesのFilterモジュールの使い方

1340711549632

Filterモジュールを使用すると、RSSフィードに独自のフィルターをつけることが可能になります。

特定のフレーズを含んだフィードのみを出力したり、正規表現を用いて不要なフィードを除外したりできます。

禁止ワードを指定して、不要なフィードを除外する

作成するPipesの完成系
2012-06-26_19h59_53

今回は、Yahoo!知恵袋のSNSカテゴリのRSSフィードにフィルターをつけてみようと思います。

リンク先にある「RSS」と書かれているアイコンを右クリックして、リンクのURLをコピーします。

2012-06-26_16h59_51

「Sources」から「Fetch Feed」をドラッグして、URLに先ほどコピーしたRSSのURLを貼り付けます。

2012-06-26_17h20_20

「Operators」から「Filter」をドラッグして、「Fetch Feed」と「Filter」をドラッグしてつなぎます。

2012-06-26_17h32_27

Filterモジュールに値を入力していきます。

2012-06-26_18h50_12

最初の行にあるプルダウンメニューは、以下のように指定します。

[Block] items that match [any] of the following

1つ目のプルダウンメニューでは、「Block(禁止)」か「Permit(許可)」を指定します。

2つ目のプルダウンメニューでは、「all(すべて)」または「any(いずれか)」の条件にマッチさせるかを指定します。条件を複数指定する場合に効果があります。ここでは、条件を1つしか指定していないので、どちらを指定しても結果は同じです。

Rulesは以下のように指定します。

item.description [Matches regex] 禁止ワード1|禁止ワード2|禁止ワード3…

Rulesの1つ目のテキストフィールドには、「item.title」または「item.description」を指定します。RSSフィードの「タイトル」にマッチさせるか、「内容」にマッチさせるかを決めます。

プルダウンメニューには、「Matches regex」を選択します。regexは、正規表現を意味しています。といっても今回使う正規表現は「|」だけです。「|」は、「または」を意味する正規表現です。これを使うと、1つのテキストフィールドで複数のフレーズを指定できるので便利です。

2つ目のテキストフィールドには、禁止ワードを必要な分だけ入力して、それらのワードを「|」でつなぎます。ここでは、性表現や罵倒表現を入力しています。禁止ワードは、ニコニコ生放送:運営NGワード一覧を参考にしました。

最後に、FilterとPipe Outputをドラッグでつなぎます。名前は「知恵袋 – SNS[Block]」としました。「Save」で保存すれば完了です。「Run pipe」をクリックして確認してみましょう。

許可ワードを指定して、必要なフィードのみを出力する

作成するPipesの完成系
2012-06-26_19h56_32

続いて許可ワードを利用したフィルターを作ります。先ほど作ったPipesを再利用するので「Save a copy」をクリックします。

2012-06-26_18h59_47

タイトルの先頭が「Copy of ~」になっていることを確認したら、Filterモジュールの値を変更します。

2012-06-26_19h45_34

[Permit] items that match [any] of the following

item.title [Contains] facebook
item.title [Contains] フェイスブック

プルダウンメニューに「Contains」を使ってみました。「Contains」は「含む」という意味です。「Matches regex」で「facebook|フェイスブック」と指定すれば同じ条件になります。

2つ目のプルダウンメニューには、「any」を指定しているので2つの条件のうちいずれかにマッチするフィードを出力します。もし「all」を指定したら、すべての条件にマッチしなければならないので、フィードが1つも出力されません。

入力が完了したら、右上の「Properties…」をクリックして、名前をリネームしましょう。最後に「Save」をクリックして保存すれば完了です。

関連記事

Yahoo!Pipesの「XPath Fetch Page」で、うまく取得できないときの対処法

Yahoo!Pipesの「XPath Fetch Page」でXpathを指定する際に、要素に複数のclassが指定されている場合とidやclass属性が指定されていない場合の対処法について解説します。

Pipes- Rewire the web02[2]

初めて「XPath Fetch Page」を使う方は、Yahoo!Pipesの新モジュール「XPath Fetch Page」の基本的な使い方を参照してください。

複数のクラス属性が指定されている場合

たとえば、以下のようなHTML文書があるとします。

<div class=”foo bar”></div>

このdiv要素をXpathで取得したい場合、あなたならどうしますか?

  1. クラス名を1つだけ選んで指定する
    //div[@class=”foo”] or //div[@class=”bar”]
  2. まとめて指定する
    //div[@class=”foo bar”]

上記のような指定の仕方を考えるかもしれません。残念ながらPipesでは、どちらもエラーが出てうまく取得できません。

このように複数のクラスが指定さている場合は、Xpathにあらかじめ用意されている関数を使います。contains()という関数です。

contanins(‘str1’,’str2’) : str1にstr2が含まれていれば true を返し、そうでなければ false 返します

つまり、先ほどの例では

//div[contains(@class,”foo”)] or //div[contains(@class,”bar”)]

と指定すればOKです。

実際にやってみましょう。MOVIE Collectionという映画サイトにあるNews一覧ページのRSSフィードを作成してみたいと思います。

作成するPipesの完成形
Pipes- editing 'MovieCollection - News'

取得範囲を決める

「Firebug」やChrome「Webデベロッパーツール」の「要素の検証」を使います。

<div class="kiji clear">

という要素を指定すればうまくいきそうです。今回は画像や日付は不要なので、このdiv要素の直下であるa要素のみを指定したいと思います。

Xpathは、クラス属性に kiji という文字列含まれている要素の子供のa要素を指定すればいいので

//div[contains(@class,”kiji”)]/a

と指定します。

Yahoo!Pipesでモジュールを組み立てる

「XPath Fetch Page」モジュールには以下のように指定します。

URL : http://www.moviecollection.jp/news/
Extract using Xpath : //div[contains(@class,"kiji")]/a
Use HTML5 parser にチェック

Renameモジュールについては割愛します。

今回の完成形はこちらです。

idやclass属性が指定されていない場合

取得したい要素の範囲内にid属性やclass属性が指定さていない場合は、「番号」を使うとうまくいくケースがあります。

実際のページで考えてみましょう。東スポWebの人気ランキング一覧にアクセスしてください

取得範囲を決める

このページには6つのランキングが用意されています。

Firebugなどで調べると、それぞれがol要素でマークアップされていることがわかります。PipesでRSSフィードを作成する場合は、ol要素の子孫にあたるa要素を指定すればうまくいきそうです。

ですが、6つのランキングのうち「エンタメ人気ランキング」のみを取得したい場合はどうすればいいでしょうか?

2012-06-06 01-58-31

//ol/li/a

と指定した場合は、6つのランキングすべてが取得されてしまいます。「総合人気ランキング」や「スポーツ人気ランキング」も余計に含まれてしまうわけです。

このようなときに便利なのが「番号」です。以下のように書き換えます。

//ol[4]/li/a

と指定すると、4番目に登場したol要素の子孫のa要素のみに限定して取得することができます。

Yahoo!Pipesでモジュールを組み立てる

「XPath Fetch Page」モジュールには以下のように指定します。

URL : http://www.tokyo-sports.co.jp/rankinglist/
Extract using Xpath : //ol[4]/li/a
Use HTML5 parser にチェック

Renameモジュールについては割愛します。

今回の完成形はこちらです。

関連記事

Yahoo!Pipesの新モジュール「XPath Fetch Page」の基本的な使い方

2012年6月末から使用不可になる「Fetch Page」モジュールに代わり、新しく「XPath Fetch Page」モジュールが導入されました。XPathに対応したことで、従来の「Fetch Page」よりも簡潔かつ正確に、HTML文書を取得することが可能になりました。

それでは、「XPath Fetch Page」の基本的な使い方ついて解説します。

Pipes- Rewire the web02

今回はエンタメ | 東スポWebの新着ニュースのRSSフィードを作成したいと思います。完成形は以下のようになります。

作成するPipesの完成形
tousupo_pipes

完成までの流れ

  1. HTML文書の中から必要な範囲を探す
  2. PipesでオリジナルのRSSを作成する
  3. 作成したRSSをRSSリーダーに登録

1.HTML文書の中から取得する範囲を決める

HTMLソースを表示して、取得する範囲を決めるのもいいですが、それよりもブラウザ機能やアドオンを使う方がスムーズに作業が行えます。

Firefoxならアドオンの「Firebug」をインストールして使います。Chromeならデフォルトで「Webデベロッパーツール」が用意されていますので、これを使います。どちらもブラウザ上でキーボードの「Ctrl+Shift+C」を押すと起動できます。

では、エンタメ | 東スポWebにアクセスし、「Ctrl+Shift+C」を押してください。

ここではFirebugを例に解説します。下の画像で赤枠で囲まれているのが、今回取得したい部分です。

2012-06-03_1439

Firebugの「要素の検証」機能を使うと、赤枠の部分に対応するのが「div#cate_reportlist」であることがわかります。

これで取得する範囲を絞ることができました。次は、項目ごとに1つ1つ分解していきます。

2012-06-03_1454

同様にFirebugの「要素の検証」で確認すると「先ほどのdiv要素の子供であるh2要素の子供のa要素」を指定するとうまくいきそうです。

まとめるとa要素までは、以下のような階層構造になっています。
<div id="cate_reportlist"> / <h2> / <a>

ここまでわかればあとは簡単です。

2.PipesでオリジナルのRSSを作成する

Yahoo!Pipesにアクセスし、「Create a Pipe」をクリックします(Pipesを使うのが初めての方は、アカウント登録が必要です)。

Pipes- Rewire the web

左サイドバーから「XPath Fetch Page」をドラッグします。

Pipes- editing pipe

「URL」には先ほどの東スポWebのURL(http://www.tokyo-sports.co.jp/category/entame/)を入力します。

次に、「Extract using XPath」にXPathを入力します。XPathは以下のような形式で指定します。

//要素名[@属性名="属性値"]/要素名/…

今回の東スポWebの例だと

//div[@id="cate_reportlist"]/h2/a

となります。これを「Extract using XPath」に入力します。XPathについてもっと詳しく知りたい方は、「XPath Tutorial」や「XML XPath」を参照してください。

「Use HTML5 parser」には常にチェックを入れておいてください。「Emit items as string」にはチェック入れずにしておいてください。

左サイドバーからOperatorsをクリックし、「Rename」をドラッグしてください。続けて、2つのモジュールをドラッグしてつなぎます。

Pipes- editing pipe02

次に、Renameモジュール内のMappingsの左横にある「+」をクリックして、カラムを1つ追加します。続けて、Renameと書いてある青いバーをクリックします。すると、モジュール全体がオレンジ色に変わります。

Pipes- editing pipe03

この状態で画面下を見ると、「0,1,2,…」のような番号が振られているのが確認できると思います。0をクリックして展開してみます。

Pipes- editing pipe04

hrefとcontentという項目があることがわかります。この場合ではhrefをlinkに、contentをtitleに割り当てたいので以下のように入力します。

item.href [Rename] link
item.content [Rename] title

このようにitemのあとに「.」でつないでいきます。今回のケースでは1階層しかありませんが、さらに階層が深くなった場合でも、item.div.p.a.hrefのように「.」でつないでいくだけでOKです。

linkはフィードのリンク、titleはフィードのタイトルになります。他にもdescription(フィードの説明文、ブログだったら記事の抜粋文)、pubDate(フィードの公開日)などがあります。

入力が終わったら「Rename」と「Pipes Output」をつないで、画面下の「Refresh」をクリックして、うまく出力できているかどうかを確認してください。

Pipes- editing pipe05

続いて、左上の「Untitled*」をクリックし、適当な名前を入力します。今回は、「東スポWeb – エンタメ」としました。

Pipes- editing pipe06

次に、右上の「Save」をクリックして、設定を保存し、「Run pipe…」をクリックして、実行します。

Pipes- editing07

3.作成したRSSをRSSリーダーに登録

Pipes- 東ス・Web - エンタメ

ここでは、作ったPipesを一般に公開したり、RSSやJSON形式で取得したりできます。

「My Yahoo!」と「Googleリーター」には登録用のリンクがあらかじめ用意されているので、そこから簡単に登録できます。その他のRSSリーターで登録したい場合は、「Get as RSS」を右クリックし、URLをコピーして、そのURLをRSSリーダーに登録すればOKです。

今回作成したPipesの完成形はこちらです。

関連記事