問題タブ [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.
email - Web サイト上の電子メールをロボットやクローラーから保護する
Web サイト上の電子メールをスパムボットから保護する方法は何ですか?
ついに個人サイトを立ち上げます。すべてのページにウェブマスター/フィードバック メールを掲載したいのですが、スパム クローラーがメール アドレスを抽出して攻撃してくるのが心配です。この場合、通常のホワイトリスト指向のフィルタリングを使用できないため、これは特に当てはまります。クローラーが抽出するのが難しい人々にメールアドレスを伝える効果的な方法はありますか?
私の長期的な計画は、投稿されたフォームを介してフィードバックを許可することです (そして、皆さんのためにキャプチャについて質問します)。フィードバックの手段がまったくない状態でライブに移行します。
solr - Xapian のクローラー/パーサー
一連の Web サイトをクロールし、ページから特定の情報を抽出し、その特定の情報の全文索引を作成する検索エンジンを実装したいと考えています。
Xapian は、検索エンジン ライブラリに適しているように思えます。
Xapian と統合するためのクローラー/パーサーのオプションは何ですか?
Solr は、オープンソースのクローラー/パーサーと統合するために、Xapian よりも優れた選択肢でしょうか?
seo - 検索エンジンのスパイダーが検索結果のページングリンクを無限にクロールするのを防ぐことは可能ですか?
私たちのSEOチームは、メインの動的検索結果ページをスパイダーに開き、メタタグから「nofollow」を削除したいと考えています。現在、robots.txtでパスを許可することでスパイダーにアクセスできますが、メタタグに「nofollow」句があり、スパイダーが最初のページを超えないようになっています。
<meta name="robots" content="index,nofollow">
'nofollow'を削除すると、スパイダーが結果セットのすべてのページをクロールし始めるため、検索システムへの影響が壊滅的なものになるのではないかと心配しています。次の点についてアドバイスをいただければ幸いです。
1)メタタグから「nofollow」を削除する方法はありますが、スパイダーがページ上の特定のリンクのみをたどらないようにしますか?rel = "nofollow"についてさまざまな意見を読みましたが、これは実行可能なオプションですか?
<a rel="nofollow" href="http://www.mysite.com/paginglink" >Next Page</a>
2)クモがどこまで行くかの「深さ」を制御する方法はありますか?彼らが数ページをヒットしてから停止したとしても、それほど悪くはないでしょう。
3)検索結果ページには、標準の次/前のリンクがあります。これにより、理論上、スパイダーはページを無限に再帰的にヒットします。これはSEOにどのような影響を及ぼしますか?
スパイダーが異なれば動作も異なることは理解していますが、主にGoogle、Yahoo、MSNなどの大手企業に関係しています。
検索結果ページとページングリンクは、書き直されておらず、?name = valueクエリ文字列を持っているという点でボットフレンドリーではありませんが、私が見たところ、スパイダーは'? ' 結果ページはまともなページランクで索引付けされているので。
data-structures - 「同等の」テキストを見つける方法は?
2つのテキスト文字列を検索(生成しない)して、すべての非文字を削除して使用した後、1つの文字列を単純な置換で別の文字列に変換できるようにします。
これの動機は、確率分布を介して暗号を攻撃する方法をテストすることであると私が知っているプロジェクトから来ています。単純な換字式暗号で暗号化すると、一貫性のある他の何かに復号化できる、大きくて一貫性のあるプレーンテキストを見つけたいと思います。
これは2つの部分になり、コーパス内でそのような最長の文字列を見つけて、そのコーパスを取得します。
最初の部分は、最初の出現のシーケンスを連続させる置換の後に、文字列をキーオフしたBツリーを使用したある種の攻撃に慣れているように見えます。
ツリーの各深さに基づいて文字列の最大値と長さを知ることに基づく少しの最適化と、残りはコーディングだけです。
他の部分はかなり複雑になります。検索するテキストの大きなコーパスを生成する方法は?ある種のインターネットスパイダーは、最大量のテキストにアクセスできるので理想的なアプローチのように見えますが、それをテキストだけにストリップする方法はありますか?
質問は; これをより良くする方法について何かアイデアはありますか?
編集:使用されていた暗号は、めちゃくちゃ基本的な26文字の換字式暗号です。
psこれは、私にとっておそらく実際のプロジェクトというよりも、思考実験です。
python - 両端キューをテキスト ファイルに保存する
Python でクローラーを作成しています。次の実行時に Ctrl+C でクローラーが最初からやり直さないようにするために、処理両端キューをテキスト ファイル (1 行に 1 項目) に保存し、反復ごとに更新する必要があります。更新操作は超高速である必要があります。車輪の再発明を避けるために、これを行うための確立されたモジュールがあるかどうかを尋ねています。
php - PHP での Web クローラー リンク/ページ ロジック
PHP でページを単純にキャッシュする基本的なクローラーを作成しています。
get_file_contents
Webページのコンテンツを取得するために使用し、正規表現を使用してすべてのリンクを取得するだけです<a href="URL">DESCRIPTION</a>
-現時点では次のように返されます:
私が抱えている問題は、ページ リンクがローカルかどうかを判断する背後にあるロジックを理解すること、または完全に異なるローカル ディレクトリにある可能性があるかどうかを判断することです。
組み合わせはいくつでも可能です:href="../folder/folder2/blah/page.html"
またはhref="google.com"
またはhref="page.html"
- 可能性は無限大です。
これにアプローチする正しいアルゴリズムは何でしょうか? 重要なデータを失いたくありません。
button - ワティンを使用してボタンのリストを取得するにはどうすればよいですか?
Watinを使用して、Webサイトで使用可能なボタンのリストを取得するにはどうすればよいですか?watinTestRecorderはどのようにそれを行いますか?
web-crawler - Google キャッシュからウェブサイトをダウンロードするにはどうすればよいでしょうか?
友人が誤ってフォーラム データベースを削除してしまいました。彼がバックアップの実行を怠ったという事実を除けば、これは通常は大きな問題にはなりません。2 年間のコンテンツはあっという間になくなってしまいました。明らかに、彼は教訓を学んだ。
ただし、良いニュースは、個々のサイト所有者がばかであっても、Google がバックアップを保持していることです。悪いニュースは、従来のクロール ロボットが Web サイトの Google キャッシュ バージョンで窒息することです。
Google キャッシュをトロールするのに役立つものはありますか、それとも自分で作成するにはどうすればよいですか?
web-crawler - 悪意のあるユーザーによるクロールからサイトを保護/監視する方法
状況:
- ユーザー名/パスワードで保護されたコンテンツを含むサイト (試用/テスト ユーザーになる可能性があるため、すべてが制御されるわけではありません)
- ユーザー名/パスワードの制限により、通常の検索エンジンではアクセスできません。
- 悪意のあるユーザーは引き続きログインして、セッション Cookie を「wget -r」などに渡すことができます。
問題は、そのようなアクティビティを監視し、それに対応するための最良のソリューションは何かということです (サイトのポリシーがクロール禁止/スクレイピングを許可していないことを考慮すると)。
いくつかのオプションを考えることができます:
- トラフィック監視ソリューションをセットアップして、特定のユーザー/IP のリクエスト数を制限します。
- 最初のポイントに関連: 一部のユーザー エージェントを自動的にブロックする
- (Evil :)) アクセス時にユーザーをログアウトさせ、アカウントを無効にする隠しリンクを設定します。(おそらく、通常のユーザーはクリックするためにそれを見ないため、これにアクセスすることはありませんが、ボットはすべてのリンクをクロールします。)
ポイント1については、すでに実装されている優れたソリューションを知っていますか? 経験はありますか?問題の 1 つは、非常にアクティブだが人間のユーザーの場合、誤検出が発生する可能性があることです。
ポイント 3: これは本当に悪いことだと思いますか? または、それに関する問題の可能性はありますか?
その他のご提案も承ります。