私はGoogleの検索結果を向上させる拡張機能を構築しています。しかし、私は、セレクタ.g
を使用することは将来的に拡張機能を壊すことになり、このセレクタが変更を維持するかどうかはわかりません、Googleのクラスのすべては、Googleの検索結果を選択する最も信頼性の高いCSSセレクターは何ですか?
は.g
です。それとも変化しているのか。代わりにa
タグを探してそこから行くべきですか?
私はGoogleの検索結果を向上させる拡張機能を構築しています。しかし、私は、セレクタ.g
を使用することは将来的に拡張機能を壊すことになり、このセレクタが変更を維持するかどうかはわかりません、Googleのクラスのすべては、Googleの検索結果を選択する最も信頼性の高いCSSセレクターは何ですか?
は.g
です。それとも変化しているのか。代わりにa
タグを探してそこから行くべきですか?
あなたが望んでいることはどちらかを実行しますが、タグを見つけることは、Googleが行う変更をより安定して独立させることになります。
私はグーグルが.gを変更するのではないとは思わないが、あなたは決して知らない。アプリをできるだけ安定させるには、hrefを含むタグを探すのが最善の方法です。だから、Googleの何が変わっても、ページ上のリンクは擦れてしまう。そこから、取り上げられる可能性のある広告やグーグルのヘッダーやフッターなどを取り除くなどの追加のフィルタリングを行う必要があります。
要素の検索方法を選択する際には、一般的にクラス名とIDが最初に選択されます。しかし、すべてのクラス値がCSSセレクタやXPath式の中で使うのは良いことではありません。たとえば、col-xs-8
またはcol-sm-offset-11
のようなブートストラップクラスは、レイアウト-であり、データ-ではないため、このために使用しないでください。 "product"や "searchResult"のようなクラス名は、提供された方がはるかによく適合します。これらのクラス名は、基礎となる要素を完全に記述します。
例に戻る。一般的に、g
のようなクラス値は、信頼性の高いロケータではありません。それは可読ではなく、その表現についての情報を提供しません。しかし、ここではGoogleの検索結果ページについて話しています。この場合、g
は近い将来に変化する可能性が低いため、かなり良い位置情報技術といえます。
あなたのスクレーパーには、エラー処理と通知メカニズムが実装されていることを確認してください。変更がいつ発生し、コードが破損するかを知ることができます。
#search h3 > a
これは簡単に説明できるので、おそらくもっと良いアプローチです。「検索」コンテナにあるリンクでもある見出しを探しています。
優れた自動レポート機能を持つシステム開発者にとっては意味があります。 –
私はそこに答えがあるとは思わない。 Googleはいつでもこれを変更することができ、あなた(または私)はそれを制御できません – Liam
Liamと同意して、MAYBE 'data-hveid'は少し安定しています(HTMLとCSSはツールによって縮小されていると仮定します)彼らはいつでも自由に変更することができます –
理論的には、あなたは正しいでしょう。しかし、現実的かつ統計的に、もしあなたが何かが変わっていないのを見たら。常に 'a'タグがあり、' h3'タグの中にラップされています。これがいくつかのクラスでも当てはまるのではないかと思います。 –