ホームページ >バックエンド開発 >PHPチュートリアル >php は単純なクローラーの開発を実装します。php はcrawlers_PHP チュートリアルを実装します。

php は単純なクローラーの開発を実装します。php はcrawlers_PHP チュートリアルを実装します。

WBOY
WBOYオリジナル
2016-07-12 08:55:03776ブラウズ

php はシンプルなクローラーの開発を実装し、php はクローラーを実装します

仕事や私たち自身のニーズにより、必要なデータを取得するためにさまざまな Web サイトを閲覧することがあります。そのため、私が開発しているものは次のとおりです。 simple クローラーの旅と遭遇した問題。

クローラーを開発するには、まずクローラーが何に使用されるかを知る必要があります。これを使用して、さまざまな Web サイトで特定のキーワードを含む記事を検索し、そのリンクを取得して、すぐに読めるようにしたいと考えています。

個人的な習慣によれば、最初にインターフェイスを作成し、自分のアイデアを明確にする必要があります。

1. さまざまな Web サイトにアクセスします。次に、URL 入力ボックスが必要です。
2. 特定のキーワードを含む記事を検索します。次に、記事タイトルの入力ボックスが必要です。
3. 記事のリンクを取得します。次に、検索結果を表示するコンテナが必要になります。

リーリー

コードをアップロードし、独自のスタイル調整を追加するだけで、インターフェースが完成します:

次のステップは、PHP を使用して関数を作成することです。最初のステップは、Web サイトの HTML コードを取得することです。1 つずつは紹介しません。ここでは、curl を使用して Web サイトの URL を渡すと、HTML コードが得られます。 リーリー

HTML コードを取得しても、すぐに問題、つまりエンコーディングの問題が発生し、次のマッチングのステップが無駄になる可能性があります。ここでは、取得した HTML コンテンツを utf8 エンコーディングに一律に変換します。 リーリー

Web サイトの HTML と記事の URL を取得するには、次のステップは Web ページの下にあるすべての a タグを照合することです。これには正規表現を使用する必要があります。多くのテストを経て、最終的により信頼性の高い正規表現が得られました。 a タグの下の構造は非常に複雑なので、それがタグである限り、それを手放しません: (最も重要なステップ)

リーリー

マッチング結果は $matches にあり、これはおそらく次のような多次元グループです:

リーリー

このデータを取得できる限り、他のすべては完全に操作可能です。この要素グループを検索し、必要な a タグを見つけて、その a タグの対応する属性を取得できます。タグを操作する方が便利です:

リーリー

もちろん、これは 1 つの方法にすぎません。正規表現を使用して必要な情報を照合したり、データを使って新しいトリックを実行したりすることもできます。

次のステップは、もちろん、結果をフロントエンドに送り返して表示し、js を使用してフロントエンドでデータを取得し、jquery を使用して動的に追加します。コンテンツを編集して表示します:

リーリー

上記の最終レンダリング:

興味があるかもしれない記事:

php IIS ログ分析検索エンジン クローラー記録プログラム
  • php は訪問者とクローラーに異なるコンテンツを表示します
  • PHP で実装された軽量でシンプルなクローラー
  • PHP でシンプルなクローラーを実装する方法
  • クローラー記録を実装するための PHP コード - 非常に効果的です
  • PHP クローラーの百万レベルの Zhihu ユーザー データのクローリングと分析
  • シンプルなクローラー開発を実装するための PHP+HTML+JavaScript+Css

http://www.bkjia.com/PHPjc/1117098.html

本当http://www.bkjia.com/PHPjc/1117098.html技術記事 PHP は単純なクローラーの開発を実装します。PHP はクローラーを実装します。仕事や私たち自身のニーズにより、必要なデータを取得するためにさまざまな Web サイトを閲覧することがあります。そこでクローラーが登場しました。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。