Heim  >  Artikel  >  Backend-Entwicklung  >  So crawlen Sie Lianjia-Mietinformationen mit PHP

So crawlen Sie Lianjia-Mietinformationen mit PHP

PHPz
PHPzOriginal
2023-06-13 15:43:571168Durchsuche

In der heutigen Zeit, in der die Nachfrage der Menschen nach der Anmietung eines Hauses weiter steigt, hat sich auch das Aufkommen verschiedener Websites mit Immobilieninformationen wie Lianjia.com, 58.com usw. rasant entwickelt. Für Mieter ist es sehr wichtig, schnell Mietinformationen einzuholen. In diesem Fall ist das Schreiben eines PHP-Crawlers zum Crawlen der Lianjia-Mietinformationen eine effiziente und bequeme Lösung.

In diesem Artikel wird eine einfache und leicht verständliche PHP-Methode zum Crawlen von Lianjia-Mietinformationen vorgestellt, damit jeder schnell die erforderlichen Informationen erhalten und integrieren kann, um die Mietinformationen, mit denen er zufrieden ist, besser zu finden.

1. Den Quellcode der Website crawlen

Für den Crawler ist es zunächst das Wichtigste, den Quellcode der Zielwebseite zu erhalten. Daher müssen wir die cURL-Funktion von PHP verwenden, um den Quellcode der Lianjia Rental-Homepage zu erhalten. Der spezifische Code lautet wie folgt:

$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;//输出网页源代码

Der obige Code verwendet die Funktion „curl_init()“, um „curl“ zu initialisieren. Die Funktion „curl_setopt()“ legt die URL der Zielwebseite fest, die abgerufen werden muss, und gibt den Inhalt der Webseite nicht direkt aus. sondern speichert es in der Variablen $data. Verwenden Sie dann die Funktion curl_exec(), um Curl auszuführen und den Quellcode der Webseite abzurufen. Verwenden Sie abschließend die Funktion „curl_close()“, um Curl zu schließen.

2. Analysieren Sie den Quellcode der Webseite

Nachdem wir den Quellcode der Lianjia-Vermietungshomepage erfolgreich erhalten haben, müssen wir ihn analysieren, um die erforderlichen Mietinformationen zu finden. Während der Analyse müssen reguläre Ausdrücke verwendet werden, um die erforderlichen Informationen abzugleichen.

Im Quellcode der Lianjia-Miet-Homepage können wir feststellen, dass die Mietinformationen in Divs der Klasse „content__list--item“ enthalten sind und jede Mietinformation ein unabhängiges Div ist, sodass wir reguläre Ausdrücke verwenden können, um diese abzugleichen divs. Der spezifische reguläre Ausdruck lautet wie folgt:

$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,获取每个信息的价格、标题、描述、地区

Im obigen regulären Ausdruck gleichen wir das div-Tag ab, das Mietinformationen enthält, und verwenden spezifische reguläre Ausdrücke, um andere div-Tags abzugleichen, die Preis-, Titel-, Beschreibungs- und Regionsinformationen oder -elemente enthalten. Unter anderem wird der Si-Modus-Modifikator verwendet, um die Zuordnung mehrerer Textzeilen zu erleichtern.

3. Analysieren Sie den Quellcode der Webseite

Nachdem wir reguläre Ausdrücke verwendet haben, um die Divs abzugleichen, in denen sich alle Mietinformationen befinden, müssen wir die in den einzelnen Mietinformationen enthaltenen spezifischen Informationen wie Miete, Adresse, usw. Hier können wir die DOMDocument-Klasse von PHP verwenden, um HTML-Tags zu manipulieren.

Der spezifische Code für die Verwendung der DOMDocument-Klasse zum Parsen von HTML-Tags lautet wie folgt:

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

Im obigen Code verwenden wir zunächst die DOMDocument-Klasse, um den erhaltenen Webseiten-Quellcode in das DOM zu laden, und verwenden dazu die DOMXPath-Klasse Führen Sie XPath-Abfragen im DOM durch. Verwenden Sie dann die Funktion query(), um die div-Elemente abzufragen, in denen sich alle Mietinformationen befinden, und verwenden Sie die Funktion foreach(), um die div-Elemente zu durchlaufen, in denen sich die einzelnen Mietinformationen befinden.

4. Extrahieren Sie die erforderlichen Informationen

Nachdem wir das Div durchquert haben, in dem sich die einzelnen Mietinformationen befinden, müssen wir weiterhin reguläre Ausdrücke verwenden, um die erforderlichen Informationen wie Preis, Adresse usw. zu extrahieren. Der spezifische Code lautet wie folgt:

//提取价格
$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;

Im obigen Code verwenden wir die Funktion query(), um die HTML-Elementknoten der erforderlichen Informationen aus dem div-Element abzufragen, in dem sich die einzelnen Mietinformationen befinden Wählen Sie in der Knotenliste das erste Element im Element aus und verwenden Sie dann das Attribut nodeValue, um den Textinhalt dieses Elements abzurufen.

5. Integrieren Sie die erforderlichen Informationen

Abschließend integrieren wir alle erforderlichen Informationen in ein assoziatives Array.

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

Als nächstes fügen wir die integrierten Informationen einem Array hinzu und geben das gesamte Array aus, nachdem wir alle div-Elemente durchlaufen haben, in denen sich die Mietinformationen befinden.

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

Durch die oben genannten Vorgänge können wir ganz einfach alle relevanten Informationen auf der Lianjia-Vermietungswebsite abrufen, was uns einen großen Komfort bei der Vermietung bietet.

Zusammenfassung

Durch die Einleitung dieses Artikels glaube ich, dass jeder die Methode zum Crawlen von Lianjia-Mietinformationen mit PHP leicht beherrschen kann. Insbesondere müssen wir die cURL-Funktion verwenden, um den Quellcode der Webseite abzurufen, reguläre Ausdrücke verwenden, um die HTML-Elemente abzugleichen, in denen sich die erforderlichen Informationen befinden, die DOMDocument-Klasse zum Parsen von HTML-Tags verwenden und schließlich die erforderlichen Informationen integrieren ein assoziatives Array und geben Sie das gesamte Array aus, um die endgültigen erforderlichen Mietinformationen zu erhalten.

Das obige ist der detaillierte Inhalt vonSo crawlen Sie Lianjia-Mietinformationen mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn