前提・実現したいこと
google suggest apiを使って、検索のキーワード候補を一括して取得したいんです。
発生している問題・エラーメッセージ
xmlで表示される検索キーワード候補とElement Treeで取得できる検索キーワード候補が違うんです。
該当のソースコード
import urllib import urllib.parse url = "https://www.google.com/complete/search?hl=en&q=%E3%83%91%E3%82%A4%E3%82%BD%E3%83%B3&output=toolbar" print(url) req = urllib.request.Request(url) with urllib.request.urlopen(req) as response: XmlData = response.read() import xml.etree.ElementTree as ET root = ET.fromstring(XmlData) for suggestion in root.iter('suggestion'): print(suggestion.attrib['data'])
実行すると
パイソン
パイソン できること
パイソン 入門
パイソン柄
パイソン 言語
パイソンとは
パイソン 蛇
パイソン コード
パイソン インストール
パイソン 資格
となりますが、取得したいXMLのsuggestion dataは下記の通りとなっており、若干違うんですが、どうすれば下記のsuggestion dataを得られるでしょうか。よろしくお願いします。
<toplevel> <CompleteSuggestion> <suggestion data="パイソン"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="パイソン柄"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="パイソン 入門"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="パイソン言語"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="パイソンとは"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="パイソン インストール"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="パイソン 財布"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="パイソン 本"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="パイソン 資格"/> </CompleteSuggestion>補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
ブラウザでアクセスした場合と Python のコードで取得した場合の結果が異なるということですか?
自分の場合、試しましたが同じ結果になりましたよ。
もし違うのであれば、可能性としてはブラウザでアクセスした場合は普段の検索履歴などからパーソナライズされた結果が表示されているとかではないですか?
はい、chromeブラウザでアクセスした場合と Python のコードで取得した場合の結果が異なるということです。
あれ?そうなんですね。パーソナライズされた結果が表示されている可能性もありそうです。
貴重なご意見ありがとうございました。
ブラウザでアクセスする際 Chrome のシークレットウィンドウを起動して確かめてみてはどうでしょうか?
あなたの回答
tips
プレビュー