2

箱から出して考えましょう!

プログラミングのスキルがなければ、製品の特定の詳細を印刷するページではなく、製品を一覧表示するWebページにいるのかどうかをどのように判断/検出できますか?

ブックマークレットは、JavaScriptを使用して、Webサイト(eBay、Bloomingdales、Macy's、toys'r'us ...)のbodyタグの直後に挿入されます。

さて、私の話は次のとおりです:(今必要なプログラミングスキル)

ブックマークレットを持っていますが、主な問題は、製品を一覧表示するページにいるのか、製品の詳細を印刷するページにいるのかを検出する方法です。

私が製品の詳細ページにいるかどうかを検出するために私が考えることができる最善の方法は、現在のURLの参照を検出することです。(おそらくすべての紹介、クリック履歴全体)

考えられる問題:ユーザーがURLをお気に入りとして追加し、私のブックマークレットを使用せず、ブラウザーを閉じます。次に、ユーザーはブラウザをもう一度使用し、お気に入りのリンクをクリックして私のブックマークレットを使用します。この場合、紹介を検出できないと思います。すべてのケースがカバーされている、または可能であるとは限りません。

この場合、キャッシュを使用してこのリンクの参照を検出できますか?(多くのブラウザはここに関係するシステムをキャッシュします、私は知っています)

4

4 に答える 4

3

いいえ。ブックマークレットや通常のクライアント側のJavaScriptでは履歴を確認できません。正解です。ブックマークからロードすると、リファラーは空になります。

ただし、ブックマークレットは、最初にCookieまたはlocalStorageで使用されたときにリファラーを格納でき、次に使用されるときに、リファラーが空の場合はCookieまたはlocalStorageを確認できます。

そうは言っても、この問題に対するあなたのアプローチ全体は私には本当に奇妙に思えますが、それが私たちの狂気の天才であるかどうかを知るのに十分な詳細がありません。

現在のページがリストページなのか詳細ページなのかを判断しようとした場合は、URLで一般的なパターンを調べるか、ページのコンテンツで一般的なパターンを調べます。

一般的なURLパターンの例:多くの「リストページ」は検索結果であるため、クエリ文字列には「search = "」、「q ="」、「keywords="」などの単語が含まれます。

ページコンテンツパターンの例:商品ページには、「購入」ボタンまたは「カートに追加」ボタンが1つだけあります。リストページには、そのようなボタンがないか、多数あります。

于 2012-10-01T08:58:57.100 に答える
3

製品の特定の詳細を印刷するページではなく、製品をリストするWebページにいる場合、どのように言う/検出できますか

Brain.js (javascriptで実装されたニューラルネット)をセットアップし、それをDOMの(必要に応じて幅広く多様な)サンプルセットでトレーニングしてから、しきい値product:detailsの比率を選択して、どのタイプを(可能な限り)「検出」します。私がいるページ。

これにはある程度の試行錯誤が必要ですが、私が考えることができる最善のアプローチです(ニューラルネットは、かなり迅速に「十分に良い」結果を得ることができます。試してみてください。結果に驚かれることでしょう)。

于 2012-10-10T05:35:49.413 に答える
2

なぜURLを使わないのですか?次に、このhttp://www.le.url.com?pageid=10&type=DSのようなことを行うことができ、コードは次のようになります。

<?php
if(isset($_GET['type']) && $_GET['type'] == 'DS'){
    // Do stuff related to Details Show
} else{
    // Show all the products
}
?>

そして、.htaccesファイルを使用してURLを次のようにすることができます:http: //www.le.url.com/10/DS

于 2012-10-01T07:20:29.637 に答える
2

私はあなたの目標は最初にそれがいくつかのウェブサイトで機能することであるべきだと思います。その後、多くのWebサイト、そして最終的にはすべてのWebサイト。

A)Amazon、eBayなどのメインサイトを手作業でコーディングしてみてください...ターゲットを念頭に置いてください。

B)もっとクリエイティブなのは、すべての通貨記号のリストを保持してから、ページに10個の通貨記号が散在しているかどうかを検出することです。たとえば、$記号はAmazonのいたるところにあります。しかし、1ページあたり20と言う場合にのみ、それが製品リストであると本当に言えます(これは悪い例です。Amazonのページはかなりクレイジーです)。おそらく、通貨記号は機能しません。ただし、似たようなものを一般化できると思います。おそらく、大量の通貨記号に加えて、物事が一列に並んでいる「グリッド」タイプのシステムの検出です。大量のゴミが発生するため、適切なフィルタリングが必要になります。このようにアルゴリズム的に機能するものができたら、データ分析が必要になります。

C)B)の後で、A)の一部を使用するとシステムが改善される可能性があることに気付くと思います。言い換えれば、あなたは特定の人気のあるウェブサイト(またはそれに関してはもっとニッチなウェブサイト)から地獄をカスタマイズしたいと思うでしょう。これは、既知のモデルに従わないサイトのギャップを埋めるのに役立つはずです。

ここで、ユーザーがどこから来たのかを追跡する限り、追跡Cookieタイプの概念を使用しないのはなぜですか。もちろん、indexedDBやlocalstorageなどを使用することもできます。つまり、現在のページに保存して、常に最後のページへの参照を保持します。また、スタックを作成して、すべてのページのURLをプッシュするなどのこともできます。何らかの理由で保存したい場合は、そのデータをサーバーに送り返してください。

お気に入りのクリックを検出するには、すべてのAJAXトラフィックを検出して分析する必要があります(これは難しいかもしれませんが...)。最初に調査を行って、これらの呼び出しが通常どのように見えるかを確認する必要があります。私はamazon.com/favorite/product_idのようなものをイメージするのはかなり一般的でしょう。また...ページの「お気に入り」ボタンのセレクターを検出してから、onclickハンドラーを追加してクリックされたことを検出することもできます。

私はあなたが言及したそれぞれの問題を解決しようとしました。私はあなたが何をしようとしているのか正確には理解していないと思います。

于 2012-10-06T03:54:22.363 に答える