pagetakaBlog

最近リフォームと鳥取県日南町の記事多め。写真、PC、ネット等の話題も

Python:SeleniumでYahoo検索「一致」条件(Webスクレイピング)

前説

70歳が少しずつ近づく爺です。相当耄碌し妄想(≒暴走)も激しくなっております。今朝は、Yahoo!検索を使った時の一致具合について、少し書いてみようかと思います。

「すべて含む」がちょっとぉ~

Yahoo!検索(条件指定 - Yahoo!検索)は、検索キーワードを入力する際「すべて含む」「順番も含め完全に一致」「少なくとも一つを含む」「含めない」など、どこを使うか選択できます。

で、最初「すべて含む」に検索語を入れ「検索ボタン」クリックしたんですけど、期待と結果が異なることになりました。

「四重渓温泉」が検索語なんだけど、見る限り10個の見出し、概略には見当たらない
「四重渓温泉」が検索語なんだけど、見る限り10個の見出し、概略には見当たらない

「順番も含め完全に一致」でやってみた

「順番も含め完全に一致」に検索語「四重渓温泉」を入力
「順番も含め完全に一致」に検索語「四重渓温泉」を入力

検索語「四重渓温泉」を「順番も含め完全に一致」のフォーム内に入力し、「検索」ボタンをクリックした結果が下の通りです。

検索語「四重渓温泉」を「順番も含め完全に一致」で検索した結果、1件がヒットした
検索語「四重渓温泉」を「順番も含め完全に一致」で検索した結果、1件がヒットした

これであれば爺が期待した結果と同じです。記事概要に検索語が含まれ、納得の結果でした。

これをPython+Selenium で検索するときに…。

24時間以内、日本語などの条件は前回スクリプトと同じですが、検索の厳密さという部分が異なります。それで、必要部分を抜き出してみたら、次のようになりました。試すときは「import」などの環境はご自身のにあわせてくださいね。

from selenium import webdriver
webdriver_path=('C:\xxx\chromedriver.exe')
driver = webdriver.Chrome(webdriver_path)

h_head ="https://search.yahoo.co.jp/search?_adv_prop=web&x=op&ei=UTF-8&fr=top_ga1_sa&fr2=op&submit=%E6%A4%9C%E7%B4%A2&va=&va_vt=any&vp="
h_tail ='&vp_vt=any&vo=&vo_vt=any&ve=&ve_vt=any&vd=d&vst=0&vs=&vf=all&vc=countryJP&fl=2'  #match
h_search_word = '四重渓温泉'

h_target = h_head + h_search_word + h_tail
driver.get(h_target) #合成された検索条件をブラウザに読み込む

追記:「最終更新」はいつ?

検索結果を見ましたら、確かに「四重渓温泉」はヒットしているのですが、この記事が24時間以内に更新された、というわけではないようです。サイト更新の最終更新が24時間以内ということみたいです。

概要表示に出ている検索ヒットに関する直接のリンクは無いわけで、検索ヒットしたサイトに行って、改めて検索し、日付をチェックするという作業が必要になる、のかな~( ノД`)シクシク…。