問題タブ [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.
web-crawler - サイト データのクロールとリッピングを防止する
インデックスと検索でアクセスできる、おそらく数千もの異なるエントリを持つコンテンツ サイトの構築を検討しています。
悪意のあるクローラーがサイトからすべてのデータを盗むのを防ぐために、どのような対策を講じることができますか? 正規のクローラーをまとめてブロックしたくはありませんが、SEO についてはそれほど心配していません。
たとえば、データを表示するために使用する HTML 構造の小さなビットをランダムに変更することを考えましたが、実際には効果的ではないと思います。
erlang - Erlang、Mnesia、Yaws を使用して強力な Web 検索エンジンを開発することは可能ですか?
Erlang、Mnesia、Yaws を使用した Web 検索エンジンの開発を考えています。これらのソフトウェアを使用して、強力で最速の Web 検索エンジンを作成することは可能ですか? これを達成するには何が必要で、何から始めればよいですか?
optimization - Ultraseek5.7のSEO
Ultraseek 5.7は、企業のイントラネットサイトのコンテンツにインデックスを付けており、Webページがそれに合わせて最適化されていることを確認したいと思います。
Ultraseekに役立つSEO手法はどれですか。また、これらの機能に関するドキュメントはどこにありますか?
実装を検討した機能:
- タイトルを作成し、最初のH1にページに関する最も価値のある情報を含めます
- sitemap.xmlファイルを実装する
- 新しいコンテンツが追加されたときにUltraseekxpaインターフェイスにpingを実行します
- 「SEOフレンドリー」なURL文字列を使用する
- HTMLページにメタキーワードを追加します。
search-engine - ボットに特定のプロパティを入力することで特別なカタログを作成するために使用できる、索引付けボットを含む検索エンジンはありますか?
私たちのアプリケーション (C#/.NET) は、検索するために多くのクエリを必要とします。Google の 1 日あたり 50,000 件のポリシーでは不十分です。設定した特定のルール (国のドメインなど) に従ってインターネット Web サイトをクロールし、URL、テキスト、キーワード、Web サイトの名前を収集し、独自の内部カタログを作成して、大規模な外部検索エンジンに制限されないようにするものが必要です。グーグルやヤフーのように。
サーバーにインストールするために使用できる無料のオープン ソース ソリューションはありますか?
車輪を再発明しても意味がありません。
.net - HttpBrowserCapabilities.Crawler プロパティ .NET
HttpBrowserCapabilities.Crawler プロパティ ( http://msdn.microsoft.com/en-us/library/aa332775(VS.71).aspx ) はどのように機能しますか? パートナーのカスタム クローラーを検出する必要がありますが、このプロパティは false を返します。
このプロパティが true を返すように、ユーザー エージェントをどこに/どのように追加すればよいですか? 独自のユーザー エージェント検出メカニズムを作成する以外の方法はありますか?
apache - Apache Web サーバー上のすべてのサイトの検索クローラーをブロックできますか?
私は、パブリック インターネット上に、いくつかの Web サイトのプロダクション コードのコピーを実行しているステージング サーバーのようなものを持っています。ステージング サイトがインデックスに登録されるのは本当に嫌です。
ステージング サーバーの httpd.conf を変更して、検索エンジンのクローラーをブロックする方法はありますか?
スクリプトを使用して同じコード ベースを両方のサーバーにコピーするため、robots.txt を変更しても実際には機能しません。また、サイトがたくさんあり、新しいサイトを作成する場合に特定の設定をコピーすることを覚えておく必要がないため、仮想ホストのconfファイルも変更したくありません。
web-crawler - 「ステルス」Web クローラーの検出
検出されたくない Web クローラーを検出するためのオプションは何ですか?
(検出技術をリストアップすることで、スマート ステルス クローラー プログラマーがより優れたスパイダーを作成できるようになることはわかっていますが、スマート ステルス クローラーをいずれにせよブロックできるとは思いません。間違いを犯したものだけをブロックするだけです。)
googlebot や Yahoo! などの優れたクローラーについて話しているのではありません。啜る。次の場合、ボットは優れていると考えます。
- ユーザーエージェント文字列で自分自身をボットとして識別します
- robots.txt を読み取ります (そしてそれに従います)
一般的なユーザー エージェントの背後に隠れ、帯域幅を使用し、決して見返りを与えない悪質なクローラーについて話しているのです。
更新されたリストを作成できるトラップドアがいくつかあります(thanks Chris, gs) :
- robots.txt にリストされている (禁止としてマークされている) ディレクトリのみを追加します。
- 目に見えないリンクを追加する (rel="nofollow" とマークされている可能性がありますか?)、
- スタイル="表示: なし;" リンクまたは親コンテナ上
- より高い z-index を持つ別の要素の下に配置
- CapitaLiSaTioN を理解していない人を検出し、
- 返信を投稿しようとする人を検出しますが、常にキャプチャに失敗します。
- POST 専用リソースへの GET リクエストを検出する
- リクエスト間の間隔を検出する
- 要求されたページの順序を検出する
- 誰が (一貫して) http 経由で https リソースを要求しているかを検出する
- 画像ファイルを要求していない人を検出します (これを既知の画像対応ブラウザのユーザーエージェントのリストと組み合わせると、驚くほどうまく機能します)
一部のトラップは、「良い」ボットと「悪い」ボットの両方によってトリガーされます。それらをホワイトリストと組み合わせることができます:
- 罠を仕掛ける
- それは要求し
robots.txt
ますか? - 従ったため、別のトラップをトリガーしません
robots.txt
ここでもう 1 つ重要なことは
、視覚障害者がスクリーン リーダーを使用することを考慮してください。人々があなたに連絡する方法を提供するか、(画像以外の) キャプチャを解決してブラウジングを続けることです。
通常の人間の訪問者として自分自身を偽装しようとする Web クローラーを自動的に検出するには、どのような方法がありますか。
更新
問題は、すべてのクローラーをどのようにキャッチするかということではありません。問題は、クローラーを検出する可能性を最大化するにはどうすればよいかということです。
一部のスパイダーは非常に優れており、実際に html、xhtml、css、javascript、VB スクリプトなどを解析して理解
します。
ただし、一部のクローラーがどれほど愚かであるかに驚かれることでしょう。(私の意見では)愚かさの最も良い例は次のとおりです。すべての URL をリクエストする前に小文字にキャストします。
そして、さまざまなトラップドアを回避するには「十分ではない」クローラーがたくさんあります.
c# - .NET には信頼できる非同期ソケット通信がありませんか?
私はかつて .NET で Crawler を作成しました。スケーラビリティを向上させるために、.NET の非同期 API を利用してみました。
System.Net.HttpWebRequest には非同期 API BeginGetResponse/EndGetResponse があります。ただし、この API のペアは、HTTP 応答ヘッダーと、HTTP 応答コンテンツを抽出できる Stream インスタンスを取得するためのものです。したがって、私の戦略は、BeginGetResponse/EndGetResponse を使用して非同期的に応答ストリームを取得し、次に BeginRead/EndRead を使用して応答ストリーム インスタンスからバイトを非同期的に取得することです。
クローラーがストレステストに行くまで、すべてが完璧に見えます。ストレス テストでは、クローラーのメモリ使用量が高くなります。WinDbg+SoS でメモリをチェックしたところ、多くのバイト配列が System.Threading.OverlappedData インスタンスによって固定されていることがわかりました。インターネットで検索した後、Microsoft からこの KB http://support.microsoft.com/kb/947862を見つけました。
KB によると、非同期 I/O の数には「上限」があるはずですが、「推奨される」境界値はわかりません。したがって、私の目には、この KB は何の役にも立ちません。これは明らかに .NET のバグです。最後に、応答ストリームから非同期でバイトを抽出するという考えを捨てて、同期的な方法でそれを行う必要があります。
ドット ネット ソケット (Socket.BeginSend / Socket.BeginReceive / NetworkStream.BeginRead / NetworkStream.BeginWrite) で非同期 IO を許可する .NET ライブラリには、非同期 IO で未処理のバッファー (送信または受信) の量に上限が必要です。 .
ネットワーク アプリケーションは、ポストする未処理の非同期 IOの数に上限を設定する必要があります 。
編集:いくつかの疑問符を追加してください。
Socket と NetworkStream で非同期 I/O を実行した経験のある人はいますか? 一般的に言えば、本番環境のクローラーは、同期または非同期でインターネットとの I/O を行いますか?
xhtml - ブラウザと検索エンジンのスパイダーにおける XHTML サポートの現在のレベルは?
IE のケースは無視して、application/xhtml+xml コンテンツ タイプを理解できないブラウザは他にありますか? 検索エンジンのスパイダーはどうですか?
数年前ではないため、おそらく不正確な回答をウェブ上で見つけることができませんでした。
編集: どういうわけか関連する質問: XHTML strict はどのような問題を解決しますか?
lucene - LuceneまたはSolrで使用するスパイダリングツールの推奨事項は?
HTMLおよびXMLドキュメント(ローカルまたはWebベース)に対して使用するのに適したクローラー(スパイダー)とは何ですか?Lucene / Solrソリューションスペースでうまく機能しますか?Javaベースである可能性がありますが、そうである必要はありません。