問題タブ [web-crawler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 正直な Web クローラーの検出
ボットからのリクエストを(サーバー側で)検出したいと思います。現時点では、悪意のあるボットは気にしません。うまく機能しているものだけです。ユーザー エージェント文字列を「bot」などのキーワードと照合する方法がほとんどであるアプローチをいくつか見てきました。しかし、それはぎこちなく、不完全で、維持できないようです。それで、誰かがより堅実なアプローチを持っていますか?そうでない場合、すべての友好的なユーザー エージェントの最新情報を入手するために使用するリソースはありますか?
興味がある方のために: 私は検索エンジンのポリシーに反することをしようとしているわけではありません。サイトのセクションで、ページのわずかに異なるいくつかのバージョンのうちの 1 つがユーザーにランダムに表示されます。ただし、Web クローラーが検出された場合は、常に同じバージョンを提供して、インデックスの一貫性を保ちます。
また、私は Java を使用していますが、このアプローチはどのサーバー側テクノロジーでも似ていると思います。
data-mining - 1 日に複数回の Web フィードの処理
わかりました、ここで取引を簡単に説明します。私は、インターネット上に表示されるように、Web (あらゆる種類のデータ、ブログ/ニュース/フォーラム) をスパイダーします。次に、このフィードを処理し、処理されたデータの分析を行います。スパイダーは大したことではありません。インターネットが新しいデータを取得するので、ほぼリアルタイムで取得できます。処理はボトルネックであり、計算負荷の高いアルゴリズムが含まれます。
スパイダーをスケジュールするための戦略を構築しようとしています。大きな目標は、最終結果として生成される分析が、できるだけ多くの最近の入力の影響を反映していることを確認することです。考えてみると、明らかな目的は、データが積み重ならないようにすることです。スパイダーを介してデータを取得し、処理コードに渡し、処理が完了するまで待ってからさらにスパイダーします。今回は、処理が終わるのを待っている間に現れたすべてのデータを持ってきます。わかりました、これは非常に広い考えです。
あなたの何人かがあなたの考えを共有できますか、大声で考えるかもしれません. あなたが私だったら、あなたの心に何が入るでしょうか。私の質問が理にかなっていることを願っています。ちなみに、これは検索エンジンのインデックス作成ではありません。
search - robots.txt がステージング環境から本番環境に渡されるのを防ぐにはどうすればよいですか?
以前、当社の IT スペシャリストの 1 人が、robots.txt を本番環境のステージングから誤って移動してしまったことがありました。本番環境で Google などによるお客様のサイトのインデックス登録をブロックする。この状況を管理する良い方法はありますか?
前もって感謝します。
html-parsing - Webページから意味のある完全なコンテンツを抽出する
クローラーを使用してWebコンテンツをマイニングして分析を行っています。多くの場合、Webページには、実際のコンテンツからユーザーの注意をそらす記事の本文の周りに雑然としたもの(広告、不要な画像、無関係なリンクなど)が含まれています。
ウェブページのニュース記事/ブログ投稿/フォーラムコメント/記事の実際の位置を定義する基準がないという事実を考えると、私が理解しているように、賢明なコンテンツを抽出することは難しい問題です。
私はこのようないくつかのオープンソースソリューションを見つけることができました:https ://metacpan.org/pod/HTML :: ContentExtractor
しかし、誰かがこれに対処し、妥当な成功率を得ているかどうか私は興味があります。それはかなり一般的な問題のようであり、多くの専門家がそこにいると信じたいと思います。私はJAVAベースのソリューションを好みますが、それは難しいルールではありません。いくつか入力してください。深く感謝します。
php - PHPスパイダー/スクレイパーを実行するが、タイムアウトしない方法
基本的に、最大実行時間を回避する必要があります。
さまざまな間隔で情報を得るためにページをスクレイピングする必要があります。つまり、それらの間隔でボットを呼び出して、データベースからリンクをロードし、リンクが指すページをスクラップします。
問題は、ボットのロードです。javascript (Ajax 呼び出しなど) でロードすると、ブラウザーは、ページが応答するのに時間がかかりすぎているというエラーをスローし、さらにページを開いたままにしておく必要があります。
PHP内から実行する場合、おそらく実行時間を必要なだけ延長できますが、エラーがスローされた場合、プロセスを強制終了するアクセス権がなく、PHPが実行されるまでブラウザーに何も表示されません完成ですよね?
誰かがこれを回避するためのトリックを持っているかどうか疑問に思っていましたか? スクレーパーは、ずっと監視しなくても、さまざまな間隔で単独で実行されます。
乾杯 :)
http - クロールロボットとページサイズ
疑問に思っていたのですが、Webサイトのサイズが最適化されていない場合、検索エンジンのランクや結果の位置付けの点で影響を受けますが、同じタイプのWebサイトと比較して平均読み込み時間があります。まあ言ってみれば
web-crawler - ページをクロールするときにCacheBusterクエリ文字列を検出する
私は非常にうまく機能し、ほとんどの場合、循環ループトラップでスタックすることを回避する非常に単純なクロールエンジンをまとめました。(つまり、ページAはページBにリンクし、ページBはページAにリンクします)。
このループでスタックするのは、両方のページがキャッシュバスタークエリ文字列で相互にリンクしている場合のみです。基本的には、更新ごとにすべてのリンクで一意のクエリ文字列です。
これにより、ページは常にクローラーにとって新しいページのように見え、クローラーは2つのページ間を移動してスタックします。
2つのページ間でN回バウンスした後、クエリ文字列だけが異なる(これはあまり良いアプローチではないと思います)以外に、これらのトラップを検出して解決する方法は他にあります... ?
web-crawler - Robots.txt: 主要な SE のみを許可する
サイトが Google、Yahoo! からの訪問のみを受け入れるように robots.txt を構成する方法はありますか? とMSNスパイダー?
python - Web クローラーと Google App Engine ホステッド アプリケーション
無料のスタートアップ バージョンを実行していることを考慮して、アプリと一緒に GAE で Web クローラーを実行することは不可能ですか?