ホームページ  >  記事  >  バックエンド開発  >  PHPでLianjiaの賃貸情報をクロールする方法

PHPでLianjiaの賃貸情報をクロールする方法

PHPz
PHPzオリジナル
2023-06-13 15:43:571117ブラウズ

今日の時代では、住宅を借りたいという人々の需要が高まり続けるにつれて、Lianjia.com、58.comなどのさまざまな不動産情報ウェブサイトの出現も急速に発展しています。賃貸人にとって、賃貸情報を素早く入手することは非常に重要です。この場合、Lianjia のレンタル情報をクロールする PHP クローラーを作成するのが効率的で便利なソリューションです。

この記事では、Lianjia の賃貸情報をクロールするためのシンプルでわかりやすい PHP 方法を紹介します。これにより、誰もが必要な情報を迅速に取得して統合し、満足のいく賃貸情報をよりよく見つけることができます。

1. Web サイトのソースコードをクロールする

まず、クローラーにとって最も重要なことは、対象の Web ページのソースコードを取得することです。したがって、PHP の cURL 関数を使用して、Lianjia Rental ホームページのソース コードを取得する必要があります。具体的なコードは次のとおりです:

$url = "https://sz.lianjia.com/zufang/"; // 链家租房首页网址
$ch = curl_init();  //初始化curl
curl_setopt($ch, CURLOPT_URL, $url); //设置爬取网页url
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不直接输出网页内容
$data = curl_exec($ch);//执行curl
curl_close($ch);
echo $data;//输出网页源代码

上記のコードは、curl_init() 関数を使用して、curl を初期化します。curl_setopt() 関数は、取得する必要があるターゲット Web ページ URL を設定し、Web ページを直接出力しません。コンテンツですが、それを $data 変数に保存します。次に、curl_exec() 関数を使用してcurlを実行し、Webページのソースコードを取得します。最後に、curl_close() 関数を使用して、curl を閉じます。

2. Web ページのソース コードを分析する

Lianjia レンタル ホームページのソース コードを正常に取得したら、それを分析して必要なレンタル情報を見つける必要があります。分析中に、必要な情報を照合するには正規表現を使用する必要があります。

Lianjia レンタル ホームページのソース コードでは、レンタル情報がクラス "content__list--item" の div に含まれており、各レンタル情報は独立した div であることがわかります。そのため、通常のこれらの div に一致する式。特定の正規表現は次のとおりです。

$preg = '/<div class="content__list--item".*?>.*?<div class="content__list--item--main">.*?<span class="content__list--item-price"><em>(.*?)</em>元/月</span>.*?<a.*?>(.*?)</a>.*?<span class="content__list--item--des">(.*?)</span>.*?<i>(.*?)</i>.*?</div>.*?</div>/si';
//匹配div,获取每个信息的价格、标题、描述、地区

上記の正規表現では、レンタル情報を含む div タグと一致し、価格、タイトル、説明、および地域情報を含む div タグと一致するために特定の正規表現を使用しました。 . 他の div タグまたは要素。このうち、si モード修飾子は、複数行のテキストの一致を容易にするために使用されます。

3. Web ページのソース コードを解析する

正規表現を使用してすべてのレンタル情報が含まれる div を照合した後、各レンタルに含まれる特定の情報をさらに解析して分析する必要があります。家賃や住所などの情報ここでは、PHP の DOMDocument クラスを使用して HTML タグを操作できます。

DOMDocument クラスを使用して HTML タグを解析するための具体的なコードは次のとおりです。

$dom = new DOMDocument();
$dom->loadHTML($data);
$domxpath = new DOMXPath($dom);
$element = $domxpath->query('//div[@class="content__list--item"]');
foreach($element as $el){
    //在这里做具体解析操作
}

上記のコードでは、まず DOMDocument クラスを使用して、取得した Web ページのソース コードをDOM を作成し、DOMXPath クラスを使用して DOM 上で xpath クエリを実行します。次に、query() 関数を使用してすべてのレンタル情報が配置されている div 要素をクエリし、foreach() 関数を使用して各レンタル情報が配置されている div 要素を走査します。

4. 必要な情報を抽出します

各レンタル情報が配置されている div を移動した後、さらに正規表現を使用して、価格や住所などの必要な情報を抽出する必要があります。 。具体的なコードは次のとおりです:

//提取价格
$price = $domxpath->query('.//span[@class="content__list--item-price"]/em',$el)->item(0)->nodeValue;
//提取标题
$title = $domxpath->query('.//a',$el)->item(0)->nodeValue;
//提取描述
$desc = $domxpath->query('.//span[@class="content__list--item--des"]',$el)->item(0)->nodeValue;
//提取地区
$region = $domxpath->query('.//i',$el)->item(0)->nodeValue;

上記のコードでは、query() 関数を使用して、各レンタル情報が配置されている div 要素から必要な情報の HTML 要素ノードをクエリします。 () 関数を使用してノード リストの最初の要素を選択し、nodeValue プロパティを使用してその要素のテキスト コンテンツを取得します。

5. 必要な情報を統合します

最後に、必要な情報をすべて連想配列に統合します。

$info = ['price'=>$price,
         'title'=>$title,
         'desc'=>$desc,
         'region'=>$region];

次に、統合された情報を配列に追加し、レンタル情報が配置されているすべての div 要素を走査した後、配列全体を出力します。

$result[] = $info;// 将每个房屋信息数组添加到$result数组
}
print_r($result);//输出所有租房信息数组

上記の操作により、Lianjia レンタル ウェブサイト上のすべての関連情報を簡単に入手できるため、レンタルに大きな利便性がもたらされます。

概要

この記事の紹介により、PHP で Lianjia の賃貸情報をクロールする方法を誰でも簡単にマスターできると思います。具体的には、cURL 関数を使用して Web ページのソース コードを取得し、正規表現を使用して必要な情報が含まれる HTML 要素と照合し、DOMDocument クラスを使用して HTML タグを解析し、最後に必要な情報を連想配列 を作成し、配列全体を出力して、最終的に必要なレンタル情報を取得します。

以上がPHPでLianjiaの賃貸情報をクロールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。