観光の継続的な発展に伴い、観光情報は非常に豊富になってきました。誰もがより包括的かつ正確な旅行情報を入手しやすくするために、クローラーを使用して旅行 Web サイト上のデータをクロールし、分析および処理することができます。この記事では、PHP を使用して Ctrip の旅行情報をクロールする方法を紹介します。
- クローラーの基本
クローラーは、Web サイトにアクセスするユーザーをシミュレートし、Web サイト上のデータを取得する自動プログラムです。クローラーは通常、次のステップに分かれています。
- リクエストの開始: クローラー プログラムは、ターゲット Web サイトへの HTTP リクエストを開始し、ターゲット Web サイトの HTML コードを取得します。
- HTML の解析: 適切なパーサーを使用して HTML コードを解析し、必要なデータを取得します。一般的なパーサーには、正規表現、XPath、DOM パーサーが含まれます。
- データの保存: 取得したデータは、後の分析と処理のためにファイルまたはデータベースに保存します。
- ターゲット Web サイトの分析
クローラーを作成する前に、まずターゲット Web サイトの構造とデータを分析する必要があります。このクローラーのターゲット Web サイトは Ctrip 旅行 Web サイトです。 Web サイトの URL 構造と HTML コードを分析して、Web サイトがどのようにリクエストされ、どのように解析されるかを判断する必要があります。
2.1 URL構造分析
シートリップの旅行ウェブサイトのURL構造は比較的単純で、各旅行商品には固有のID番号が付いています。北京観光の閲覧を例に挙げると、URL は https://you.ctrip.com/sight/beijing1.html です。このうち、beijing1 は北京観光の ID 番号を表します。
2.2 HTML コード分析
Chrome ブラウザの開発者ツールを使用して Web ページの HTML コードを表示すると、ページ上の旅行情報がクラスの div にあることがわかります。 「リスト_mod2」。この div には、商品名、価格、レビューなど、各旅行商品に関する詳細情報が含まれています。クローラー プログラムでは、PHP の DOM パーサーを使用してこの情報を解析する必要があります。
- クローラー プログラムの作成
ターゲット Web サイトの URL 構造と HTML コードを理解したので、旅行情報を取得するクローラー プログラムを作成できます。
3.1 HTTP リクエストの開始
まず、PHP の cURL ライブラリを使用して、ターゲット Web サイトへの HTTP リクエストを開始し、ターゲット Web サイトの HTML コードを取得する必要があります。コードではID=1から順に各旅行商品の詳細情報を取得するループを使用しています。
//爬取ID号从1到n的旅游产品的详细信息 for($i=1;$i<=$n;$i++){ $url = "https://you.ctrip.com/sight/beijing$i.html"; //目标网站URL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $html = curl_exec($ch); curl_close($ch); }
3.2 HTML コードの解析
次に、PHP の DOM パーサーを使用して、ターゲット Web サイトの HTML コードを解析し、必要な旅行商品情報を取得します。コードでは、XPath 式を使用してクラス「list_mod2」の div を選択し、製品名、価格、評価などの情報を取得します。
$doc = new DOMDocument(); $doc->loadHTML($html); $xpath = new DOMXPath($doc); $list_mod2 = $xpath->query('//*[@class="list_mod2"]'); //选择class为"list_mod2"的div foreach($list_mod2 as $mod){ $modImg = $xpath->query('a/img/@src', $mod)->item(0)->nodeValue; //获取产品图片URL $modTitle = $xpath->query('div/h2/a', $mod)->item(0)->nodeValue; //获取产品名称 $modContent = $xpath->query('div/div/div/p/@title', $mod)->item(0)->nodeValue; //获取产品简介 $modPrice = $xpath->query('div/div/span/em', $mod)->item(0)->nodeValue; //获取产品价格 $modComment = $xpath->query('div/div/div/div/span[1]', $mod)->item(0)->nodeValue; //获取产品评价分数 $modCommentNum = $xpath->query('div/div/div/div/span[2]', $mod)->item(0)->nodeValue; //获取产品评价人数 }
3.3 データの保存
最後に、取得した観光商品情報をデータベースに保存します。コードでは、PHP の PDO 拡張機能を使用してデータベースに接続し、取得した製品情報を「product_info」という名前のデータベース テーブルに挿入します。
//连接数据库 $dsn = 'mysql:host=localhost;port=3306;dbname=test;charset=utf8'; $username = 'root'; $password = '123456'; $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); $dbh = new PDO($dsn, $username, $password, $options); //将获取到的产品信息插入到数据库 $stmt = $dbh->prepare("INSERT INTO product_info(img_url, title, content, price, comment_score, comment_num) VALUES(?, ?, ?, ?, ?, ?)"); $stmt->bindParam(1, $modImg); $stmt->bindParam(2, $modTitle); $stmt->bindParam(3, $modContent); $stmt->bindParam(4, $modPrice); $stmt->bindParam(5, $modComment); $stmt->bindParam(6, $modCommentNum); $stmt->execute();
- 概要
PHP を使用してクローラー プログラムを作成すると、Ctrip 旅行 Web サイトから旅行商品情報を簡単に取得し、データベースに保存できます。実際の開発では、マルチスレッド、IP プロキシなどのテクノロジーを使用して、クローラー プログラムの効率と安定性を向上させることもできます。ただし、クローラー プログラムを使用する場合は、侵害や悪用を避けるために、ターゲット Web サイトの著作権およびプライバシー ポリシーを尊重する必要があることに注意してください。
以上がクローラーの実践練習: PHP を使用して Ctrip 旅行情報をクロールするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









