c语言编程笔录

首页 >   > 笔记大全

笔记大全

PHP 爬取链家租房信息的方法

更新时间:2023-07-11

介绍

链家网是一家专业的房产信息网站,为了更便捷的获取租房信息,我们可以使用PHP来编写爬虫程序,来爬取链家的租房信息。

方案

我们可以使用PHP的cURL函数来获取链家的租房信息,然后使用正则表达式来解析我们想要的信息。首先,我们需要设置cURL的选项,打开url,然后获取页面内容。以下是一个获取页面内容的示例代码:

$url = "https://bj.lianjia.com/zufang";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);

解析

获取页面内容后,我们需要使用正则表达式来解析出我们需要爬取的信息,可以使用preg_match_all函数来实现。以下是一个解析租房信息的示例代码:

$pattern = '/class="content__list--item--title twoline".*?>(.*?)<\/a>.*?data-el="region">(.*?)<\/a>.*?class="content__list--item--des">(.*?)<\/p>/';
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);

foreach ($matches as $item) {
    $title = trim($item[1]);
    $region = trim($item[2]);
    $desc = trim($item[3]);
}

存储

最后,我们需要将获取到的数据存储到数据库或者文件中,以便后续处理。以下是一个将获取到的租房信息存储到数据表中的示例代码:

$dsn = "mysql:host=localhost;dbname=test";
$username = "root";
$password = "123456";
$db = new PDO($dsn, $username, $password);

foreach ($matches as $item) {
    $title = trim($item[1]);
    $region = trim($item[2]);
    $desc = trim($item[3]);

    $sql = "INSERT INTO house (title, region, description) VALUES (?, ?, ?)";
    $stmt = $db->prepare($sql);
    $stmt->execute([$title, $region, $desc]);
}